【问题标题】:What is the correct Map format I can have for the following samples?以下示例的正确地图格式是什么?
【发布时间】:2016-04-10 10:10:38
【问题描述】:

我有一个字符串格式的输入数据。

{key: value,
 key1: value1,
 key2: value2,
 key3:{key4:{k1:v1,
             k2,v2}
       key5:{k1:v1,
             k2:v2}
       }
}

我想使用 jackson 将此数据从 JSON 转换为 Java 对象:

ObjectMapper mapper = new ObjectMapper();
map = mapper.readValue(json, new TypeReference<???>(){}); 

我无法想出最终的地图结构来存储这些数据。

有什么想法吗?

【问题讨论】:

  • 为什么要将它存储到Map 中?创建一个自定义对象。
  • 我想处理这些数据。它实际上是json格式。所以如果我能得到地图,那么我很容易得到所需的属性
  • 这不是正确的 JSON 格式。 key4 和 key5 需要是 jsonarray,请更新问题。如果你有有效的 JSON 检查下面的链接stackoverflow.com/questions/34388198/…
  • @Tunaki 你能给我一些例子吗?晴天,格式正确
  • 你使用的是 Jackson,所以你可以使用 JsonAnyGetter 和 JsonAnySetter。此注释旨在使用任何类型的 JSON(嵌套,N 级)。使用这些注释创建自定义对象和 MAP 字段。

标签: java json string jackson deserialization


【解决方案1】:

任何 json 对象(甚至是嵌套的)都将使用 HashMap 作为目标类型进行反序列化。

Map<String, Object> map = mapper.readValue(json, HashMap.class)

我经常这样做。

如果你有一个 json 数组,请使用List.class

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2014-01-20
    相关资源
    最近更新 更多