json解析问题

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


犯罪嫌疑人X
浏览 376回答 4
4回答

慕田峪9158850

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

慕婉清6462132

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

月关宝盒

参考一下这个:Java Gson - Convert json to a java object tree,这样会得到最基本的&nbsp;JsonElement&nbsp;对象,根据&nbsp;isJsonObject()&nbsp;判断并通过&nbsp;getAsJsonOjbect()&nbsp;可以得到&nbsp;JsonObject&nbsp;对象,这时候就可以通过类似&nbsp;jo.get("type").getAsString()&nbsp;这样的方式来得到一些关键特性属性,确定对象类型,最后通过&nbsp;<T>T Gson.fromJson(JsonElement, Type)&nbsp;方法来得到实体对象。当然,这里的关键是那个特征属性。你可以考虑在基类中加入一个&nbsp;type&nbsp;属性来识别,子类构建的时候按子类类型对其赋值。

至尊宝的传说

使用Android Studio插件 GsonFormat,一键生成实体类。其实很多网站也有在线生成的服务 比如bejson的服务
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java