我有一个平面 json 数组,如下所示:
[
{
"homeID": "ID1",
"homeName": "David",
"childID": "ID1",
"childName": "AAAA"
},
{
"homeID": "ID1",
"homeName": "David",
"childID": "ID2",
"childName": "AAAAA"
},
{
"homeID": "ID2",
"homeName": "CASEY",
"childID": "ID1",
"childName": "AAAA"
},
{
"homeID": "ID2",
"homeName": "CASEY",
"childID": "ID2",
"childName": "AAAAA"
}
]
现在我需要做的是将这个 JSONARRAY 解码为 list<HOME>
的列表在这个家庭列表中,我有一个列表 list<CHILD>
我的 Bean 类:
public class Home{
private String homeName;
private list<CHILD>;
public Home(){}
}
public class Child{
private String childName;
public Child(){}
}
那么使用 Jackson
进行此映射的最佳实践是什么? JSON 库和 java 8
?
最佳答案
我认为GSON就是您正在寻找的,它是一个 Java API,可以在 Java 中读取/写入 JSON,它将 JSON 作为输入并将其转换为 Java 对象。
您需要编写如下内容:
String jsonInString = "{'homeName' : 'home1', 'children': [{'childName': 'child1'}]}";
Home h= gson.fromJson(jsonInString, Home.class);
它会给你一个Home
对象,您只需编辑它即可读取 List<Home>
.
它会是这样的:
Type listType = new TypeToken<List<Home>>() {}.getType();
List<Home> yourList = new Gson().fromJson(yourJSONString, listType);
这将为您提供所需的内容。
可以引用这个gson tutorial和 the answer here了解更多详细信息并阅读。
关于java - FLAT JSON ARRAY 到带有 Jackson JSON lib 的 Bean 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716713/