网络

Gson解析内嵌map结构

2020-05-12  本文已影响0人  牙齿不帅

Gson可以解析map且支持范型,如:

{
    "1":{
        "name":"hello"
    },
    "2":{
        "name":"hello2"
    }
}

如下代码解析:

public class Person{
  String name;
}
Type type = new TypeToken<Map<String,Person>>() {}.getType();
Map<String,Person> map2 = new Gson().fromJson(json,type);

但是如果json是这样的呢?如何解析data不是最外层的map呢?

{
    "city":"沈阳",
    "data":{
        "1":{
            "name":"hello"
        },
        "2":{
            "name":"hello2"
        }
    }
}

办法是分步解析
1.先解析root。

public class Root{
  String city;
  JsonObject data;
}
Data data = new Gson().fromJson(json,Root.class);

2.再解析data。

Type type = new TypeToken<Map<String,Person>>() {}.getType();
Map<String,Person> map2 = new Gson().fromJson(data,type);
上一篇下一篇

猜你喜欢

热点阅读