多个@JsonProperty操作同一个属性
2021/12/1 23:10:06
本文主要是介绍多个@JsonProperty操作同一个属性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
@JsonProperty
首先这个注解是干嘛的呢,(用于JSON之间解析与传递)
-
可以作用在属性上,给该属性序列化为另一个名称(别名),主要用来序列化和反序列化;
-
当前端传json字符串,将会把json字符串反序列化为对象,会自动赋值对应的字段值
- 当后端接口响应前端对象返回json字符串,将会把对象序列化为json字符串,json字符串的属性名为
@JsonProperty
指定的名称(别名)
@Data @ToString public class User { private Integer userId; // JSON 接受创建对象 属性是:userName // 给前端返回 属性是:userName @JsonProperty("userName") private String name1; }
接下来说一下我的需求场景,需求是:2个JSON属性名 对应一个属性,问了一下项目组大佬,直接贴代码
@Data @AllArgsConstructor @NoArgsConstructor @Builder public class ExtraInfoDTO { private String fieldName; private String fieldText; @JsonProperty("fieldValue") public void setFieldValue(String fieldValue){ this.fieldText = fieldValue; } @JsonProperty("fieldText") public void setFieldText(String fieldText){ this.fieldText = fieldText; } // 测试 public static void main(String[] args) { String json = "{'fieldName':'a','fieldText':'b'}"; ObjectMapper objectMapper = new ObjectMapper(); try { ExtraInfoDTO extraInfoDTO = objectMapper.readValue(json, ExtraInfoDTO.class); System.out.println(extraInfoDTO); }catch (Exception e){ e.printStackTrace(); } } }
- 证明该注解可以作用在方法上
总结:
- 本人理解这个注解作用在属性上,那么该属性的Get/Set方法则是注解内名字所对应生成的 (Class文件内set方法上注解就是该属性上@JsonProperty)
- 作用在方法上,那么就是根据json属性名调用的同名@JsonProperty(xxxx) setxxx方法的逻辑。
这篇关于多个@JsonProperty操作同一个属性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26React入门教程:从零开始搭建你的第一个React应用
- 2024-12-25Vue2入门教程:轻松掌握前端开发基础
- 2024-12-25Vue3入门指南:快速搭建你的第一个Vue3项目
- 2024-12-25JS基础知识入门教程
- 2024-12-25React基础知识详解:从入门到初级应用
- 2024-12-25Vue3基础知识详解与实战指南
- 2024-12-25Vue3学习:从入门到初步掌握
- 2024-12-25Vue3入门:新手必读的简单教程
- 2024-12-23【JS逆向百例】爱疯官网登录逆向分析
- 2024-12-21Vue3教程:新手入门到实践应用