gpt4 book ai didi

java - 让 Jackson 将单个 JSON 对象解释为包含一个元素的数组

转载 作者:行者123 更新时间:2023-12-01 19:57:27 25 4
gpt4 key购买 nike

有没有一种方法可以让 Jackson 将单个 JSON 对象解释为具有一个元素的数组,反之亦然?

示例,我有 2 种略有不同的 JSON 格式,我需要将两者映射到同一个 Java 对象:

格式A(包含一个元素的 JSON 数组):

points : [ {
date : 2013-05-11
value : 123
}]

格式B(JSON对象,是的,我知道它看起来“错误”,但这就是我得到的):

points : {
date : 2013-05-11
value : 123
}

以上两者都应转换为的目标 Java 对象:

//Data.java 
public List<Point> points;
//other members omitted

//Point.java
class Point {
public String date;
public int value;
}

目前,只有A能够正确解析数据。我想避免直接篡改 JSON 本身。 Jackson 中是否有一些配置我可以篡改以使其接受 B

最佳答案

尝试使用 DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY - 它应该适合你。

示例:

final String json = "{\"date\" : \"2013-05-11\",\"value\" : 123}";

final ObjectMapper mapper = new ObjectMapper()
.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
final List<Point> points = mapper.readValue(json,
new TypeReference<List<Point>>() {});

关于java - 让 Jackson 将单个 JSON 对象解释为包含一个元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59027906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com