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

2022-08-31 06:13:41

我正在使用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中显示为“value”,而“name”显示为“label”。jackson的文档对此并不清楚,我已经尝试了每个注释,即使远程看起来也像我需要的那样,但我无法像json中那样出现和显示。namelabelidvalue

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


答案 1

你试过使用@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 setId(Long id){ this.id = id; }
}

答案 2

请注意,在杰克逊1.x和杰克逊2.x中有。检查您正在使用的对象映射器(从哪个版本开始),并确保使用正确的注释。org.codehaus.jackson.annotate.JsonPropertycom.fasterxml.jackson.annotation.JsonProperty


推荐