作者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/cn.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