我使用gson为json创建一个解析器,它基于对象模型方法。我的问题是我在json上有一个对象,其中有一些其他JsonObjects但我不知道有名字所以我不能使用SerializedName。初始对象上的JsonObjects数也是随机的。如何从初始对象迭代对象?
Json风格:
"initial_obj": {
"random_name1": { }
"random_name50": { }
"random_name9": { }
}
答案 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": {}
}
}