安卓使用GSON解析JSON产生的问题

现在是这么个情况,我用gson解析json,用gsonformat生成了一个javabean,然后我发现我的json数据返回
的其中一个字段City,他有两种情况,如果只有一个值就用{},如果有多个值就用[],现在我不可能去给
每一个city加中括号,因为数据量太大了,有什么好的解决办法吗

3个回答

和我们项目的一样,你要单独判断
if (json instanceof JSONObject) {
//解析

} else if (json instanceof JSONArray) {
//解析
}

qq_34658785
卖太妃糖的古尔丹 OK,感谢
大约 3 年之前 回复

有一个值也可以用json:[{}],数组中只有一个元素就行了

qq_35473951
霸王横千秋 回复卖太妃糖的古尔丹: 我的意思是返回的数据只有一个时,也可以用json数组格式。只不过元素就一个:JSON【】,city:[{"name":"beijing"}]
大约 3 年之前 回复
qq_34658785
卖太妃糖的古尔丹 是这样的,这个json太大了,我不可能去给他一个一个的改成这样的
大约 3 年之前 回复

为什么后台不直接用[]包着呢,这样的话会比较统一,你也比较好处理

qq_34658785
卖太妃糖的古尔丹 回复Android_SoBan: 厄,今天才看到,gson类有一个方法registerTypeAdapter,传入一个继承自JsonDeserializer的类,然后重写这个类的deserialize方法,可以用自己的方式解析json,遇到数据格式不统一,需要特殊处理的情况用这种方式就可以了
接近 3 年之前 回复
qq_30552993
骚剑客 回复卖太妃糖的古尔丹: 你是怎么解决的呢?能说一下么,学习学习
大约 3 年之前 回复
qq_34658785
卖太妃糖的古尔丹 这个数据是从网上找的一家公司的api,没法改,不过我已经解决这个问题了,谢谢
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问