为了账号安全,请及时绑定邮箱和手机立即绑定

json解析问题

json解析问题

犯罪嫌疑人X 2019-03-21 18:19:33
有这样一种场景需要解析json数据,json数据是一个对象数组,对象是一个图层,但是图层分为点,线,面三种图层,三种图层中有一部分属性是相同的,比如id,name...,其他的属性是不同的,比如type,style...,所以我不能定义成一个图层对象去解析不太好,我应该怎样做比较好呢?我用的是Retrofit+Gson
查看完整描述

4 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

可以把公用的字段提取出来,不一样的写成一个json的string塞在一个字段里面,先解析共有的,再根据type,解析那个json


查看完整回答
反对 回复 2019-04-24
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

把所有属性包含,组成一个新对象,用于解析。使用的时候再根据特有属性把对象区分开来。


查看完整回答
反对 回复 2019-04-24
?
月关宝盒

TA贡献1772条经验 获得超5个赞

参考一下这个:Java Gson - Convert json to a java object tree,这样会得到最基本的 JsonElement 对象,根据 isJsonObject() 判断并通过 getAsJsonOjbect() 可以得到 JsonObject 对象,这时候就可以通过类似 jo.get("type").getAsString() 这样的方式来得到一些关键特性属性,确定对象类型,最后通过 <T>T Gson.fromJson(JsonElement, Type) 方法来得到实体对象。

当然,这里的关键是那个特征属性。你可以考虑在基类中加入一个 type 属性来识别,子类构建的时候按子类类型对其赋值。


查看完整回答
反对 回复 2019-04-24
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

使用Android Studio插件 GsonFormat,一键生成实体类。
其实很多网站也有在线生成的服务 比如
bejson的服务

查看完整回答
反对 回复 2019-04-24
  • 4 回答
  • 0 关注
  • 375 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信