如何使用 Gson 从 JSON 中提取多个对象
How to extract multiple objects from JSON using Gson
有一个包含多个对象的 json 文件:
{
"object1": {
"property": "bar",
},
"object2": {
"property": "foo",
},
"object3": {
"property": "buzz"
}
}
还有 3 个 类,Object1
、Object2
和 Object3
,如何将所有 3 个提取为单独的对象?
这显然不起作用:
Object1 = gson.fromJson(reader, Object1.class);
Object2 = gson.fromJson(reader, Object2.class);
Object3 = gson.fromJson(reader, Object3.class);
您只需要一个具有这三个属性的包装器 class
public class Wrapper {
private Object1 object1;
private Object2 object2;
private Object3 object3;
// getters and setters
}
然后用gson.fromJson
把json解析成Wrapper
Wrapper wrapper = gson.fromJson(reader, Wrapper.class);
从Wrapper
获取所有必需的属性
Object1 object1 = wrapper.getObject1();
Object2 object2 = wrapper.getObject2();
Object3 object3 = wrapper.getObject3();
有一个包含多个对象的 json 文件:
{
"object1": {
"property": "bar",
},
"object2": {
"property": "foo",
},
"object3": {
"property": "buzz"
}
}
还有 3 个 类,Object1
、Object2
和 Object3
,如何将所有 3 个提取为单独的对象?
这显然不起作用:
Object1 = gson.fromJson(reader, Object1.class);
Object2 = gson.fromJson(reader, Object2.class);
Object3 = gson.fromJson(reader, Object3.class);
您只需要一个具有这三个属性的包装器 class
public class Wrapper {
private Object1 object1;
private Object2 object2;
private Object3 object3;
// getters and setters
}
然后用gson.fromJson
把json解析成Wrapper
Wrapper wrapper = gson.fromJson(reader, Wrapper.class);
从Wrapper
获取所有必需的属性
Object1 object1 = wrapper.getObject1();
Object2 object2 = wrapper.getObject2();
Object3 object3 = wrapper.getObject3();