我有这个POJO:
public class SetPoint {
private String tagName;
//more fields
//getters and setters
}
我从REST API获取SetPoints,对它们执行某些操作然后再次发送它们。问题是我想从JSON反序列化SetPoint,如:
{
"tagnameOpc" : "6GH783",
//more fields
}
但是当我发送它们时,我想将SetPoint序列化为:
{
"tagName" : "6GH783"
//more fields
}
我的意思是,我希望在每种情况下将属性tagName
命名为不同。
这可能吗?
答案 0 :(得分:6)
尝试为getter和setter使用不同的JsonProperty
注释。 E.g。
@JsonProperty("tagnameOpc")
void setTagName(String name)
@JsonProperty("tagName")
String getTagName()
如果不起作用,请尝试使用额外的setter
@JsonIgnore
void setTagName(String name)
@JsonProperty("tagnameOpc")
void setTagNameOpc(String name) {
setTagName(name);
}
@JsonProperty("tagName")
String getTagName()
答案 1 :(得分:1)
您将使用jQuery(".regular + .regular").html(data);
类两次,但为每个序列化/反序列化格式编写不同的混合类,然后针对每种情况单独配置ObjectMapper。
答案 2 :(得分:0)
假设jsonObject是一个包含json的JSONObject:
jsonObject.put("tagName", jsonObject.remove("tagnameOpc"));
从JSonObject documentation:jsonObject.remove(key)
返回与该键关联的值,如果没有值,则返回null。