【发布时间】:2022-01-03 03:14:46
【问题描述】:
下面是我要读取并映射到类模型对象的 json。
{
"models": [
{
"model": {
"code": "YY77A",
"type": "AUTO",
"source": "IN",
"name": "Sams",
"feature_types": [
{
"feature_type": {
"code": "8H",
"desc": "All Models"
}
},
{
"feature_type": {
"code": "my20",
"desc": "MY20"
}
},
{
"feature_type": {
"code": "my21",
"desc": "MY21"
}
}
]
}
},
{
"model": {
"code": "PPuY",
"type": "HOM",
"source": "IN",
"name": null,
"feature_types": [
{
"feature_type": {
"code": "8H",
"desc": "All Models"
}
},
{
"feature_type": {
"code": "MY21",
"desc": "MY21"
}
}
]
}
}
]
}
模型类:
class FeatureType2{
public String code;
public String desc;
}
class FeatureType{
public FeatureType feature_type;
}
class Model2{
public String code;
public String type;
public String source;
public String name;
public List<FeatureType> feature_types;
}
class Model{
public Model model;
}
public class Root{
public List<Model> models;
}
以下是用于将 json 映射到模型 (Root.java) 的代码
// import com.fasterxml.jackson.databind.ObjectMapper; // version 2.11.1
// import com.fasterxml.jackson.annotation.JsonProperty; // version 2.11.1
ObjectMapper om = new ObjectMapper();
Root root = om.readValue(myJsonString), Root.class);
以下是例外:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "code" (
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "code" (class com.samp.qc.Model), not marked as ignorable (one known property: "model"])
at [Source: java.io.StringReader@15f53014; line: 1, column: 30] (through reference chain: com.samp.qc.Root["models"]->
com.samp.qc.Model["model"]->com.samp.qc.Model["code"])
当将 json 字符串映射到模型对象时,它会显示上述异常。将 json String 映射到 Model 类对象的更好方法是什么。
【问题讨论】:
标签: java json objectmapper