【发布时间】:2016-09-05 11:43:01
【问题描述】:
您好,我正在处理一些遗留代码,JSON 模型的结构发生了一些变化 原模型
{
"values": {
"business": {
"default": 5.2
},
"personal": {
"charity": 0.728,
"medical": 1.222,
"moving": 1.222
}
}
}
新模型是这样的
{
"_values": {
"business": {
"purpose": {
"default": 5.2
},
"vehicle": {
"automobile": 0.0,
"bicycle": 0.0,
"motorcycle": 0.0
}
},
"personal": {
"purpose": {
"charity": 0.7280000000000001,
"medical": 1.222,
"moving": 1.222
}
}
}
}
所以我们正在使用我很新的fastxml.jackson,在尝试了一些不同的方法后,我不断收到错误消息
com.fasterxml.jackson.databind.JsonMappingException:无法反序列化 START_OBJECT 令牌中的 double 实例 在 [来源:java.io.InputStreamReader@6b8b2b1; line: 42, column: 11](通过引用链:>service.api.types.Drive_Json["_values"]->service.api.types.PotentialValues["business"]->java.util.HashMap[" purpose "])
我使用以下注释来提取我的 Json 文件中的映射
@JsonProperty("values")
private values values;
@JsonIgnoreProperties(ignoreUnknown = true)
public class values {
public HashMap<String, Double> purpose;
public HashMap<String, Double> personal;
}
当前现有的值文件有两个哈希图来保存“个人”和“企业”的值,并且没有显式绑定,获取模型并存储在各自的哈希图中。
我将 json 文件中的 JsonProperty 字段更改为“_value”并尝试更改值类文件,但我不断收到映射错误,谁能帮我为值类创建正确的模型。 我尝试了一个 hashmap,但不知道如何映射它们。
@JsonProperty("_values")
private values Values;
@JsonIgnoreProperties(ignoreUnknown = true)
public class values {
public HashMap<String, Double> business_purpose;
public HashMap<String, Double> business_vehicle;
public HashMap<String, Double> personal_purpose;
};
【问题讨论】: