我正在尝试将JSON转换为Java对象,但是在构建Java等效对象方面遇到了困难.
我的JSON看起来像这样
{
"point1": {
"x": 1.0,"y": 2.0
},"point2": {
"x": 1.0,"point3": {
"x": 1.0,"customobject1": "cust1","customobject2": "cust2"
}
我需要在这里取点地图,因为将有n个点,
public class Test {
public String getCustomobject1() {
return customobject1;
}
public void setCustomobject1(String customobject1) {
this.customobject1 = customobject1;
}
public String getCustomobject2() {
return customobject2;
}
public void setCustomobject2(String customobject2) {
this.customobject2 = customobject2;
}
Map<String,Point> testing = new HashMap<>();
String customobject1;
String customobject2;
public Map<String,Point> getTesting() {
return testing;
}
public void setTesting(Map<String,Point> testing) {
this.testing = testing;
}
}
但是我遇到了无法识别的属性异常,我知道还有一个额外的包装器({})会导致此问题,有人可以建议我在反序列化JSON时如何忽略此映射名称吗?
注意:我正在使用的实际对象具有类似的结构,有点复杂,这里我只是发布一个原型.
@JsonAnySetter
映射它们:
Marker annotation that can be used to define a non-static,two-argument method (first argument name of property,second value to set),to be used as a “fallback” handler for all otherwise unrecognized properties found from JSON content. It is similar to XmlAnyElement in behavior; and can only be used to denote a single property per type.
If used,all otherwise unmapped key-value pairs from JSON Object values are added to the property (of type Map or bean).
public class Test {
private Map<String,Point> points = new HashMap<>();
@JsonAnySetter
public void setPoints(String name,Point value) {
points.put(name,value);
}
}
原文地址:https://www.jb51.cc/java/532865.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。