@JSONField @JsonFormat @JsonProperty 使用场景
1.@JSONField 是com.alibaba.fastjson.annotation包下的
主要作用是在序列化/反序列化时控制key的名称,
例如
@JSONField(name = "name_test")
private String name;
在使用fastjson JSONObject.toJSONString(object); 序列化后为: {"name_test":"value"}
或者使用
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date time;
来控制序列化时的 时间格式
{"time":"2022-02-23 14:23:43"}
2.@JsonFormat 是com.fasterxml.jackson.annotation包下的
主要作用是格式化对象时间字段到前端展示 用法:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date date;
controller方法 使用@ResponseBody 返回对象时,时间字段会按照你设置的 pattern来显示
2.1@JsonProperty 也是com.fasterxml.jackson.annotation 包下的
主要作用当使用@RequestBody 用java对象接收body对象参数时映射入参字段
例如你对接了一个外部接口, 他们传入的参数 为: {s_name:"123"}
此时你定义java对象时 属性名要为s_name 显然不符合驼峰规范,此时你只需要使用
@JsonProperty("s_name")
private String name;
这样传入的对象字段会自动映射
或者使用 @ResponseBody 返回java对象时映射对象和返回的json的字段
如对象
@JsonProperty("s_name")
private String name;
返回是别人接到的json会是 {"s_name":"111"}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?