有没有办法让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 可以正确解析为Data。我想避免直接篡改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>>() {});
问题内容: 有没有办法让Jackson将单个JSON对象解释为具有一个元素的数组,反之亦然? 例如,我有2种略有不同的JSON格式,我需要两者都映射到相同的Java对象: 格式A(带有一个元素的JSON数组): 格式B(JSON对象,是的,我知道它看起来“错误”,但这就是我给的): 以上两种都应转换为的目标Java对象: 当前,只有A可以正确解析为Data。我想避免直接篡改JSON本身。我可以篡改
有没有办法让Jackson将单个JSON对象解释为一个包含一个元素的数组,反之亦然? 例如,我有两种稍有不同的JSON格式,我需要两者都映射到同一个Java对象: 格式(包含一个元素的JSON数组): 格式B(JSON对象,是的,我知道它看起来“错了”,但我得到的是): 目标Java以上两者都应转换为的对象: 目前,只有A将正确解析为数据。我希望避免直接篡改JSON本身。Jackson中是否有一些
前言:众所周知,将指针1放在数组末尾是合法且定义明确的: 此指针可用于比较,这有助于C样式数组(或者更准确地说,其中的指针)与采用迭代器的标准库例程兼容,例如(Live Demo): 标准(C 03参考)支持其合法性和明确性: 5/将具有整型的表达式加到指针上或从指针上减去时,结果为指针操作数的类型。如果指针操作数指向数组对象的某个元素,并且数组足够大,则结果指向与原始元素偏移的元素,从而得到的数
问题内容: 谁能解释为什么在Python中将单个元素元组解释为该元素? 和 他们为什么不只是将元组打印为? 请参阅以下示例: 问题答案: 单个元素元组永远不会被视为包含的元素。括号对分组最有用,而不是对元组的创建。逗号会这样做。 他们为什么不只将(1,)打印为(1)? 可能是因为打印内置容器类型提供了一种表示形式,可用于通过表示重新创建容器对象,例如: 的docs在此方面提供了一些清晰度: 如果可
问题内容: 我有一个看起来像这样的json响应: 我有两个类:Teste和Parameters 我的问题是:有没有一种方法可以让Gson理解某些json属性应该进入Parameters类,还是唯一的方法是“手动”解析此属性? 编辑 好吧,只是为了让我在@MikO的答案中的评论更具可读性: 我将对象列表添加到json输出中,因此json响应应如下所示: Deserializer类将如下所示: 并做: