java - 是否可以使用 Jackson JSON 进行非对称序列化和反序列化?

标签 java json jackson

假设我有这个 JSON

{
  "propertA" : "test"
}

使用此类反序列化为对象

public static class MyClass
{
  private String propertya;

  @JsonGetter( "propertya" )
  public String getPropertya() { return this.propertya; }

  @JsonSetter( "propertyA" )
  public void setPropertya( String a ){ this.propertya = a };
}

我使用了@JsonGetter,因此我可以将该对象实例序列化为以下内容:

{
  "properta" : "test"
}

但事实并非如此,我仍然得到以下信息:

{
  "propertA" : "test"
}

我做错了什么?我期望 @JsonGetter 会将我的类实例属性“propertya”序列化为“propertya”,但似乎 @JsonSetter 在序列化时接管了控制权。 @JsonGetter 到底是做什么的?看起来它不会影响我的对象的序列化方式。

最佳答案

我更新到版本 2.4.0 并且它有效。但我必须将 @JsonIgnore 添加到字段中,这很好。

在 2.4.0 中,以下代码应该可以工作:

public static class MyClass
{
  @JsonIgnore
  private String propertya;

  @JsonGetter( "propertya" )
  public String getPropertya() { return this.propertya; }

  @JsonSetter( "propertyA" )
  public void setPropertya( String a ){ this.propertya = a };
}

关于java - 是否可以使用 Jackson JSON 进行非对称序列化和反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076474/

相关文章:

json - Backbone.js Collection.sync 和 spring 端点

java - 从 zipFile 获取 inputStream 然后添加到另一个 zipFile 获取空指针异常

javascript - 如何正确定位 JSON 响应来填充表

c# - 将日期从 json 转换为日期时间

java - 读取包含单个元素的列表的数据时,restTemplate.getForEntity 会出现异常

java - 多态对象的 JSON 消费者

java - 如何从文本文件创建传入数据的 ArrayList

java - 在 Java 中更改 SOAP 接口(interface)和弃用 Web 方法

java - 如何模拟接受类类型的泛型方法?

java - @Produces @Consumes 意思是... JSON 或者它只是一个字符串