Java 如何使用Gson解析以下json?
我已经看到了关于使用动态键解析json的类似问题,但无法理解如何解析以下json:Java 如何使用Gson解析以下json?,java,json,gson,Java,Json,Gson,我已经看到了关于使用动态键解析json的类似问题,但无法理解如何解析以下json: { "unknown": { "id":3980715, "name":"namename", "profileIconId":28, "revisionDate":1451936993000 } } 在这里,“未知”键是动态的,它可以是任何东西。我们不知道这是什么 我尝试了以下课程: public class
{
"unknown":
{
"id":3980715,
"name":"namename",
"profileIconId":28,
"revisionDate":1451936993000
}
}
在这里,“未知”键是动态的,它可以是任何东西。我们不知道这是什么
我尝试了以下课程:
public class MyResponseClass {
private Map<String, Object> myResponse;
//Getter and setter
}
那么,我该怎么做呢
谢谢。试试这个:
// String jsonStr = ...;
Gson gson = new Gson();
Map<String, Object> jsonData = new HashMap<String, Object>();
jsonData = (Map<String, Object>)gson.fromJson(jsonStr, Object.class);
//字符串jsonStr=。。。;
Gson Gson=新的Gson();
Map jsonData=newhashmap();
jsonData=(Map)gson.fromJson(jsonStr,Object.class);
JSON数据将存储在Map
(这是在Java中存储JSON数据最简单的方法)
因此,在
unknown
键处的这个映射中,您将拥有另一个带有id
、name
等的映射。我可以像下面这样解析它:
return gson.fromJson(response, MyResponseClass.class);
Type mapType = new TypeToken<Map<String, MyResponseClass>>() {}.getType();
Map<String, MyResponseClass> map = gson.fromJson(response, mapType);
Type-mapType=new-TypeToken(){}.getType();
Map Map=gson.fromJson(响应,映射类型);
然后在map上迭代以得到我想要的。在字段
myResponse
中添加注释
public class MyResponseClass {
@SerializedName("unknown")
private Map<String, Object> myResponse;
//Getter and setter
}
公共类MyResponseClass{
@序列化名称(“未知”)
私人地图;
//接二连三
}
它的副本与此类似,但我认为它不是副本。我的回答中只有object这个问题的解决方案解决了你的问题我用另一种方式解决了它,并发布了答案'Map jsonData=(Map)gson.fromJson(jsonStr,object.class)`就足够了