首页 > json解析问题

json解析问题

有这样一种场景
需要解析json数据,json数据是一个对象数组,对象是一个图层,但是图层分为点,线,面三种图层,三种图层中有一部分属性是相同的,比如id,name...,其他的属性是不同的,比如type,style...,所以我不能定义成一个图层对象去解析不太好,我应该怎样做比较好呢?
我用的是Retrofit+Gson


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


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


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

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


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

【热门文章】
【热门文章】