使用Jackson更改JSON中的字段名称
我正在使用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自动完成function,所以我希望'id'在json和'name'中显示为'value',显示为'label'。 jackson的文档不清楚,我已经尝试了每个注释,即使是远程似乎它做我所需要的,但我不能让name
显示为label
和id
显示为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; } }
请注意,Jackson 1.x中有com.fasterxml.jackson.annotation.JsonProperty
,Jackson 2.x中有com.fasterxml.jackson.annotation.JsonProperty
。 检查你正在使用哪个ObjectMapper(从哪个版本),并确保你使用正确的注释。
还有一个选项来重命名字段:
jacksonMixIns 。
有用的,如果你处理第三方类,你不能注释 ,或者你只是不想污染与jackson特定的注释类。
- 休眠:hbm2ddl.auto =生产中更新?
- 我如何获得会话对象,如果我有entitymanager
- Hibernate和Spring Data JPA有什么区别?
- javax.transaction.Transactional vs org.springframework.transaction.annotation.Transactional
- 在(…)查询中编写HQL的正确方法
- ConcurrentModificationException和一个HashMap
- Hibernate中左连接和左连接FETCH的区别?
- 为什么在视图中的Hibernate开放会议被认为是一个不好的做法?
- DAO与ORM(hibernate)模式