Jackson:使用不同的属性名称序列化/反序列化 - java

我有这个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在每种情况下都被命名为不同的名称。

这可能吗?

参考方案

尝试对getter和setter使用不同的JsonProperty批注。例如。

@JsonProperty("tagnameOpc")
void setTagName(String name)

@JsonProperty("tagName")
String getTagName()

如果这样不起作用,请尝试使用额外的二传手

@JsonIgnore
void setTagName(String name)

@JsonProperty("tagnameOpc")
void setTagNameOpc(String name) {
    setTagName(name);
}

@JsonProperty("tagName")
String getTagName()

YAML Jackson-映射Integer属性时出现NullPointerException - java

杰克逊2.6.5我尝试将YAML文件映射到包含Integer属性的POJO,当它读取数字属性时会抛出: com.fasterxml.jackson.databind.JsonMappingException :(为java.lang.NullPointerException)有趣的是,如果我单引号文件中的数字属性,它将解析它们很好(我想它将字符串转换为整数)…

如何将Jackson的TypeReference与泛型一起使用? - java

对于json映射,我使用以下方法:public static <T> T mapJsonToObject(String json, T dtoClass) throws Exception { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(json, new T…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…