【发布时间】:2019-11-04 20:17:09
【问题描述】:
我有这两个JSON 数组:
{
"Person": {
"Info": [
"name": "Becky",
"age": 14
]
},
"Fruits": [
{
"name": "avocado",
"organic": true
},
{
"name": "mango",
"organic": true
}
],
"Vegetables": [
{
"name": "brocoli",
"organic": true
},
{
"name": "lettuce",
"organic": true
}
]
}
我想要做的是使用Jackson 和Gson 库让一切看起来都很漂亮。
类似的东西。这适用于Gson。所以我想要的输出是:
{
"Person": {
"Info": [
"name":"Becky",
"age": 14
]
},
"FruitsList": {
"Fruits": [
{
"name": "avocado",
"organic": true
},
{
"name": "mango",
"organic": true
}
]
},
"VegetablesList": {
"Vegetables": [
{
"name": "brocoli",
"organic": true
},
{
"name": "lettuce",
"organic": true
}
]
}
}
我已将我的课程设置为:
class Person{
private List<Info> InfoList;
//Set and get were set
}
class Info{
private String name;
private int age;
//Set and get were set
}
class Fruits{
private String name;
private boolean organic;
//Set and get were set
public String toString(){
return "Fruits:{" +
"name:'" + name+ '\'' +
", organic:" + organic+'\''+
'}';
}
}
class Vegetables{
private String name;
private boolean;
//Set and get were set
public String toString(){
return "Fruits:[" +
"name:'" + name+ '\'' +
", organic:" + organic+'\''+
']';
}
}
class rootFinal{
private List<Fruits> fruitList;
private List<Vegetables> vegetablesList;
private List<Person> personList;
//Set and get were set
}
class mainJson{
final InputStream fileData = ..("testPVF.json");
ObjectMapper map = new Ob..();
rootFinal root = map.readValue(fileData,rootFinal.class);
// I can access each class with
System.out.printl(root.getHeaderList.get(0));
}
这输出...
[Fruit{name:'avocado', organic:true}, Fruit{name:'mango', organic:true}]
但这不是我想要的。
我正在尝试对 JSON 文件进行迭代,或者是否有更好的方法来检查数组是否存在。向其中添加其他对象/数组。
如果我找到Veg 或Fruit,我想以某种方式添加VegList 和FruitList,如图所示。它应该忽略"Person": {},因为它位于{} 符号中。
有没有办法用Gson 做到这一点?
【问题讨论】:
标签: java json gson deserialization json-deserialization