【问题标题】:How to get the nested property of a JSON response using Jackson library? [duplicate]如何使用 Jackson 库获取 JSON 响应的嵌套属性? [复制]
【发布时间】:2019-03-29 21:03:50
【问题描述】:

我从 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 = {}

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

【问题讨论】:

  • 即使使用 JSON 响应的动态属性,这也能工作吗?

标签: java json java-8 jackson


【解决方案1】:

您应该能够使用杰克逊的对象映射器。您还应该创建一个类或接口来定义您的 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

【讨论】:

  • 你的代码如何解决OP的问题??
  • 如果我想存储数据属性,这是一个地图中子属性数量未知的对象,该怎么办?
猜你喜欢
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多