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

时间:2019-03-29 21:03:50

标签: java json java-8 jackson

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

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

OR

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

如何获取列表中的日期或属性A或属性B

我希望输出类似于:

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

OR

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

然后  我想存储数据属性,这是一个在映射中具有可变数量的子属性的对象。

1 个答案:

答案 0 :(得分:-1)

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

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

此外,还有一个示例:https://github.com/hawkup/react-native-prevent-screenshot

这是一个反序列化具有多种类型的json对象的示例:https://github.com/NikhilShah1647/jackson-example/blob/master/src/main/java/com/journaldev/jackson/json/JacksonObjectMapperExample.java