我正在尝试使用jackson将单个json对象的列表(用逗号分隔)序列化为java中某种类型的集合。
我是否正确地认为,由于json是如何呈现的,所以只能使用自定义Map器来实现这一点?
json输入:
{"_1":"186","_3":"In Stock"},{"_1":"187","_3":"In Stock"},{"_1":"188","_3":"In Stock"},{"_1":"189","_3":"In Stock"}
波乔
public class StockInfo {
private String _1;
private String _3;
@JsonProperty("_1")
public String get_1() {
return _1;
}
@JsonProperty("_1")
public void set_1(String _1) {
this._1 = _1;
}
@JsonProperty("_3")
public String get_3() {
return _3;
}
@JsonProperty("_3")
public void set_3(String _3) {
this._3 = _3;
}
}
序列化
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, true);
List<StockInfo> stockList = objectMapper.readValue(resultInputStream, new TypeReference<List<StockInfo>>(){});
1条答案
按热度按时间gj3fmq9x1#
jackson将无法解析它,因为它根本不是有效的json格式,除非json对象位于json数组中:
如果无法控制数据的格式,可以将伪json字符串 Package 在方括号中,使其成为json数组:
或者可以拆分字符串,然后尝试分别解析每个对象:
最接近Jackson的是
DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY
,但在你的情况下,你只能得到第一个元素。