Java:用Gson解析Json的未知领域

时间:2014-08-16 11:30:23

标签: java json gson

我使用gson为json创建一个解析器,它基于对象模型方法。我的问题是我在json上有一个对象,其中有一些其他JsonObjects但我不知道有名字所以我不能使用SerializedName。初始对象上的JsonObjects数也是随机的。如何从初始对象迭代对象?

Json风格:

"initial_obj": {
     "random_name1": { }
     "random_name50": { }
     "random_name9": { }
}

1 个答案:

答案 0 :(得分:3)

如果事先不知道字段名称,请使用TypeToken将其转换为Map<String, Object>

String str = "{\"initial_obj\": {\"random_name1\": { },\"random_name50\": { },\"random_name9\": { }}}";
Type type = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> data = new Gson().fromJson(str, type);
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(data));

输出:

{
  "initial_obj": {
    "random_name1": {},
    "random_name50": {},
    "random_name9": {}
  }
}