如何使用Jackson库获取JSON响应的嵌套属性? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我从API的响应中得到以下JSON模式,它可以是:

{
  "meta": {
      "someData": " "
  },
  "A": [
     {
       "code": 123,
       "id": "string",
       "data": {} 
     },
     {
       "code": 123,
       "id": "string",
       "data": {} 
     }
  ]
}

要么

{
  "meta": {
      "someData": " "
  },
  "B": [
     {
       "code": 123,
       "id": "string",
       "data": {} 
     },
     {
       "code": 123,
       "id": "string",
       "data": {} 
     }
  ]
}

如何从列表或属性A或属性B获取日期?

我希望输出类似于:

A[0].data = {}
A[1].data = {}

要么

B[0].data = {}
B[1].data = {}

我想存储data属性,它是一个在地图中具有可变数量的子属性的对象。

java json java-8 jackson
1个回答
-1
投票

你应该能够使用jackson的对象映射器。您应该创建一个类或接口来定义您的json对象。 A或B可能是个问题。您可以为每个创建一个类/接口。

final ObjectMapper objectMapper = new ObjectMapper();
final CallbackRequest callbackRequest = objectMapper.readValue(json, CallbackRequest.class);

另外,这是一个例子:https://github.com/NikhilShah1647/jackson-example/blob/master/src/main/java/com/journaldev/jackson/json/JacksonObjectMapperExample.java

这是一个使用可能的多种类型反序列化json对象的示例:Jackson deserialization of type with different objects

© www.soinside.com 2019 - 2024. All rights reserved.