【问题标题】:Jackson deserialize to POJO without annotations杰克逊反序列化为 POJO 没有注释
【发布时间】:2015-10-27 11:42:39
【问题描述】:

我生成了这个 json,我想反序列化为 POJO 列表

{
"members":
    [
      {"id":"947","route":"123","milkNo":"Z5623","nationalId":"65326812","firstName":"Server","otherName":"Farmer","country":"Kenya","county":"Nyandarua","address":"South Kinangop","phone1":"0752365258","phone2":"0712456321","email":"yunus.awse@gmail.com","sent":"0","remoteServer":1,"createdAt":"2015-10-21 11:17:31","updatedAt":"0000-00-00 00:00:00"}],

 "milkPayment":
     [
        {"id":"3","memberNo":"1","quantity":"40","price":"36","amount":"1437.5","deductions":"16390","payable":"-14952.5","date":"2015-10-16","remoteServer":1,"createdAt":"2015-10-16 10:26:10"}
     ],
 "advancePayment":[]
}

如何仅提取 members 数组部分,以便我可以在以下代码中提供它以获取成员列表

ObjectMapper objectMapper = new ObjectMapper();

List<Member> newMemberDeductions = objectMapper.readValue(a, objectMapper.getTypeFactory().constructCollectionType(List.class, Member.class));

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    一种方法是使用JsonNode(从 json 遍历所需的键)。试试这个:

    ObjectMapper objectMapper = new ObjectMapper();
    JsonNode node = objectMapper.readTree(new File("D:/Tests/sample.txt"));
    node = node.findValue("members");
    List<Member> newMemberDeductions = objectMapper.readValue(node.toString(), objectMapper.getTypeFactory().constructCollectionType(List.class, Member.class));
    

    这里我把你的 json 作为文件放在D:/Tests/sample.txt

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 2015-05-18
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多