如何使用Jackson更改JSON中的字段名?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

我正在使用jackson将我的一个对象转换为json。该对象有2个字段:

@Entity
public class City {
   @id
   Long id;
   String name;
   public String getName() { return name; }
   public void setName(String name){ this.name = name; }
   public Long getId() { return id; }
   public void setName(Long id){ this.id = id; }
}

因为我想用jQuery自动完成功能来使用这个功能,所以我想'id'在json和'name'中显示为'value'以显示为'label'。杰克逊的文档并不清楚,我已经尝试了每个注释,甚至远程看起来像它做我所需要的,但我不能name出现,labelid出现value在JSON中。

有谁知道如何做到这一点,或者如果这是可能的?

提问于
用户回答回答于

你有没有尝试过使用@JsonProperty?

@Entity
public class City {
   @id
   Long id;
   String name;

   @JsonProperty("label")
   public String getName() { return name; }

   public void setName(String name){ this.name = name; }

   @JsonProperty("value")
   public Long getId() { return id; }

   public void setName(Long id){ this.id = id; }
}
用户回答回答于

请注意org.codehaus.jackson.annotate.JsonPropertyJackson X 1.x和com.fasterxml.jackson.annotation.JsonPropertyJackson 2.x. 检查使用的是哪个ObjectMapper(从哪个版本开始),并确保使用正确的注释。

扫码关注云+社区