【Java】json别名注解@JsonProperty
最近突然要用到Java属性名与需要转换的JSON字符串不一致的场景,于是上网查了下可用注解@JsonProperty和@JsonAlias
区别:
@JsonProperty:这个注解提供了序列化和反序列化过程中该java属性所对应的名称
@JsonAlias:这个注解只在反序列化时起作用,指定该java属性可以接受的更多名称
今天只谈下@JsonProperty。
@JsonProperty添加在属性上,并使用new ObjectMapper().writeValueAsString(object)转换为别名的JSON字符串
Maven配置
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId>
<version>2.9.2<version> </dependency>
Bean
import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class FormFix { @JsonProperty("textField_kyk60fd5") private String empNo; @JsonProperty("textField_kyk60fd6") private String empName; @JsonProperty("selectField_kyk60fd7") private String situation; @JsonProperty("textareaField_kyk60fd8") private String comment; }
测试代码
import com.fasterxml.jackson.databind.ObjectMapper;
public static void main(String[] args) throws JsonProcessingException { FormFix formFix = new FormFix(); formFix.setEmpNo("000001"); formFix.setEmpName("姓名"); formFix.setSituation("场景"); formFix.setComment("备注"); String s = new ObjectMapper().writeValueAsString(formFix); System.out.println(s); }
输出
{"textField_kyk60fd5":"000001","textField_kyk60fd6":"姓名","selectField_kyk60fd7":"场景","textareaField_kyk60fd8":"备注"}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~