【发布时间】:2021-05-16 04:05:56
【问题描述】:
我有一个需要反序列化为 HashMap 的 json 文件。
我需要一个 {name, HashMap
示例:{aaa={value1=111, value2=222, value3=333}, bbb={value1=444, value2=555, value3=666}}
不幸的是,我是 json 和 jackson 的新手。
提前谢谢你。
这是我的json
[
{
"name": "aaa",
"values" : {
"value1" : 111,
"value2" : 222,
"value3" : 333
}
},
{
"name": "bbb",
"values" : {
"value1" : 444,
"value2" : 555,
"value3" : 666
}
}
]
还有我的班级:
public class Elements {
@JsonProperty("name")
String name;
@JsonProperty("values")
Values values;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Values getValues() {
return this.values;
}
public void setValues(Values values) {
this.values = values;
}
}
public class Values {
@JsonProperty("value1")
int value1;
@JsonProperty("value2")
int value2;
@JsonProperty("value3")
int value3;
public int getValue1() {
return this.value1;
}
public void setValue1(int value1) {
this.value1 = value1;
}
public int getValue2() {
return this.value2;
}
public void setValue2(int value2) {
this.value2 = value2;
}
public int getValue3() {
return this.value3;
}
public void setValue3(int value3) {
this.value3 = value3;
}
}
【问题讨论】:
-
当您已经填充了对象时,为什么不在反序列化后进行转换?值总是 3 吗?
-
试试
objectMapper.readValue(json, Map.class) -
@Franjavi。谢谢,这使事情变得更容易了,但并没有解决外部类的问题。 mapper.readValue(str, Elements.class) 仅在我返回 List Elements[].class. 时有效
-
对不起@bbx402,我不认为我完全了解您的需求。外部类问题是什么意思?