我有以下json结构作为输入,可以嵌套也可以不嵌套。我想在spring启动应用程序中获取json作为输入和处理。如何创建在json中包含动态键值的类。它可以是json输入中的任何键值对。下面是一个示例。
无嵌套:
{
"mappings": {
"properties": {
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"salary": {
"type": "integer"
},
"date_of_birth": {
"type": "date"
}
}
}
}
嵌套的:
{
"mappings": {
"properties": {
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"annual_salary": {
"type": "integer"
},
"date_of_birth": {
"type": "date"
},
"comments": {
"type": "nested",
"properties": {
"name": {
"type": "string"
},
"comment": {
"type": "string"
},
"age": {
"type": "short"
},
"stars": {
"type": "short"
},
"date": {
"type": "date"
}
}
}
}
}
}
我不知道如何创建一个类来支持在单个类中嵌套和不嵌套。我试过以下方法。这没用。
public class Schema {
Mapping mappings;
public Mapping getMappings() {
return mappings;
}
public void setMappings(Mapping mappings) {
this.mappings = mappings;
}
public static class Mapping {
Property properties;
public Property getProperties() {
return properties;
}
public void setProperties(Property properties) {
this.properties = properties;
}
}
public static class Property {
Map<String, Map<String, Object>> field = new HashMap<>();
public Map<String, Map<String, Object>> getField() {
return field;
}
public void setField(Map<String, Map<String, Object>> field) {
this.field = field;
}
}
}
1条答案
按热度按时间xdnvmnnf1#
我遇到了一个类似的场景,在这个场景中,我的json可能没有一致的键值对。我在类级别给出了以下jackson注解,以便忽略模型中不可用的属性和json中存在的属性。