如何在JAVA中用JACKSON映射一个JSON中的数组,这个数组可以包含不同类型的对象作为项目?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在JAVA中用JACKSON映射一个JSON中的数组,这个数组可以包含不同类型的对象作为项目?相关的知识,希望对你有一定的参考价值。
正如你在下面的例子中所看到的,第一个项目在 attributes
数组是一个由两个字符串属性组成的对象。第二个对象由一个字符串和数组属性组成。我想把这两种类型的Json对象解码成一个Java对象的集合。
我如何在一个 POJO 如何用java类来处理这样的Json解码?
attributes:[
{
"attribute_code": "has_options",
"value": "0"
},
{
"attribute_code": "ewc_top_quick",
"value": [
{
"label": "Display",
"value": "12.5",
"suffix": "''"
},
{
"label": "Grafica Integrata",
"value": "1",
"suffix": ""
}
]
}
]
答案
所以,你可以使用 Map<String, Object>
从这个字段。
class Attr {
private String attribute_code;
private Map<String, Object> value;
}
在这之后,你可以使用这个对象。
此外,您还可以使用 @JsonAnySetter
. 和上一个方案类似。
而解决你这种情况的最好办法就是... ... 自定义反序列器. 我强烈推荐这个方案。
以上是关于如何在JAVA中用JACKSON映射一个JSON中的数组,这个数组可以包含不同类型的对象作为项目?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA:如何将 JSON 键值对映射到不同的变量 Jackson
Jersey/Jackson:如何捕获 json 映射异常?
使用Jackson将Json文件映射到POJO所需的@JsonProperty