例如数据格式为
{"data":[{"uid":"FFFF0233","name":"zhangsan"},{"uid":"FFFF0234","name":"lisi"}],"errmsg":"","status":0,"ts":1567761594}
可以分为两部分外部和内部,内部是[{"uid":"FFFF0233","name":"zhangsan"},{"uid":"FFFF0234","name":"lisi"}],在数据转化为json之前,这个内部其实是一个List<对象>
可以把{"uid":"FFFF0233","name":"zhangsan"},{"uid":"FFFF0234","name":"lisi"} 看成两个对象,第一对象{"uid":"FFFF0233","name":"zhangsan"},而这对象有两个属性。
1.先解析外部
JsonObject obj = new JsonParser().parse(json数据).getAsJsonObject();
obj.get("data") 的值为 [{"uid":"FFFF0233","name":"zhangsan"},{"uid":"FFFF0234","name":"lisi"}]
以此类推
obj.get("errmsg") 的值为 ""
2.解析内部
BaseStationApJson baSAp = new Gson().fromJson(obj,BaseStationApJson.class);
for (Map map : baSAp.getData()) {
Test test = new Test("" + map.get("uid")); //到这一步 map.get("uid") 就能获取到uid的值了 Test类是测试需要,完全可以去掉
list.add(test);
}
例如BaseStationApJson
public class BaseStationApJson {
private List<Map> data;
private String errmsg;
private int status;
private Long ts;
修改:
解析的方式很多种,可以通过阿里巴巴的JSONObject或谷歌的Gson解析。