作者taco2548 (T@cO)
看板AndroidDev
標題[問題] 請問Gson遇到斜線要怎麼處理 ?
時間Mon Oct 2 10:54:42 2017
com.google.gson.JsonSyntaxException:
com.google.gson.stream.MalformedJsonException:
Unterminated object at line 1 column 22 path $[0].date
我從Firebase抓資料下來後,轉成字串用Log看是長這樣
{name=關羽, date=2017/10/02, content=過五關斬六將}
用Gson解析,然後遇到時間的斜線 / ,就錯誤了
我確定是斜線的問題,因為將斜線移除就ok了
請問這個部分要怎麼解?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.147.253
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1506912886.A.1E7.html
1F:推 lnmlee: 我確定你不是解JSON資料 這應該是Map 格式 10/02 11:12
2F:→ ssccg: 你丟給gson的原始資料是? 你貼的這不是json 10/02 11:23
3F:→ roy870075: 如上面所說,這不是JSON,但如果你硬要用這個,就在要 10/02 11:41
4F:→ roy870075: 給GSON前把 / 取代成空格或其他符號不就好了? 10/02 11:41
5F:→ taco2548: 的確看起來怪怪的,但我在這字串前後加個[]就能跑了 10/02 11:41
6F:→ taco2548: 我後來把他轉成json格式,一樣沒問題,但是斜線一樣不能用 10/02 11:41
7F:→ taco2548: 因為我的資料是由用戶輸入,可能會有各種符號 10/02 11:43
8F:→ roy870075: 把你轉的JSON格式貼上來給大家看看有沒有轉錯 10/02 11:44
9F:→ taco2548: [{"name":"關羽","date":20171002,"content":"過五關斬 10/02 11:45
10F:→ taco2548: 六將"}] 10/02 11:45
11F:→ roy870075: 你的date是字串,而不是timestamp,應該要當字串要加 10/02 11:49
12F:→ roy870075: 雙引號 10/02 11:49
13F:→ taco2548: 我轉成json後會自己變成整數,若是一開始有斜線, 10/02 11:55
14F:→ taco2548: 連轉都不能轉,這該怎辦 10/02 11:55
15F:→ taco2548: 還是乾脆不要轉了XD,畢竟一開始拿到的資料就不是json 10/02 11:56
16F:→ roy870075: 我不知道你的用途是什麼,但你那資料看起來是map,你 10/02 11:59
17F:→ roy870075: 乾脆往對的方向走,先把資料轉成map,然後想轉成其他 10/02 11:59
18F:→ roy870075: 格式再改,或直接用map就好 10/02 11:59
19F:→ vux: Gsonbuilder 10/03 01:40