我使用 gson 制作了一个 json 解析器,它基于对象模型方法。我的问题是,我在 json 上有一个对象,其中还有一些其他 JsonObject,但我不知道它们的名称,所以我无法使用 SerializedName。初始对象上的 JsonObjects 数量也是随机的。如何从初始对象迭代对象?
Json 样式:
"initial_obj": {
"random_name1": { }
"random_name50": { }
"random_name9": { }
}
最佳答案
如果事先不知道字段名称,则将其转换为 Map<String, Object>
使用 TypeToken
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": {}
}
}
关于Java:用Gson解析Json未知字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25339735/