java - FLAT JSON ARRAY 到带有 Jackson JSON lib 的 Bean 列表

标签 java json java-8 jackson

我有一个平面 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 tutorialthe answer here了解更多详细信息并阅读。

关于java - FLAT JSON ARRAY 到带有 Jackson JSON lib 的 Bean 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716713/

相关文章:

java - Jsch错误返回码不一致

java - 如何根据条件获取 JSON 值

java - [Java]编码: decoding string

php - 如何计算每个学生的成绩总和

java - 重写等于仅一种方法

java - CommonsMultipartFile 的 Jackson 序列化问题

javascript - 将字符串中的双引号替换为坟墓,而不创建新字符串

java-8 - Java 8 分组函数返回 Map<String, Integer> 而不是 Map<String,Long>

java - Double.isFinite 实现细节 - 为什么是 DoubleConsts.MAX_VALUE 而不是 Double.MAX_VALUE?

java8 流不会更改类成员