这期内容当中小编将会给大家带来有关JSON框架Jackson中的属性序列化自定义与字母表排序是啥意思,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
成都创新互联是一家集网站建设,滨湖企业网站建设,滨湖品牌网站建设,网站定制,滨湖网站建设报价,网络营销,网络优化,滨湖网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库。有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制。它提供了很多的JSON数据处理方法、注解,也包括流式API、树模型、数据绑定,以及复杂数据类型转换等功能。
@JsonPropertyOrder
属性排序通过JsonPropertyOrder注解指定java POJO中各个成员变量的属性序列化顺序。
[@Data](https://my.oschina.net/difrik) @JsonPropertyOrder({"salary","name","age","hobbies","friends"}) public class PlayerStar { private String name; private Integer age; private String[] hobbies; //业余爱好,数组 private Listfriends; // 朋友 private Map salary; //年收入 Map }
最终Java POJO对象序列化为如下的字符串,属性是按照JsonPropertyOrder注解定义的顺序序列化的("salary","name","age","hobbies","friends")。如果不使用JsonPropertyOrder指定顺序,默认是按照Java类成员变量的声明顺序进行序列化。
{ "salary" : { "2000" : 10000000, "2010" : 62000000, "2020" : 112400000 }, "name" : "乔丹", "age" : 45, "hobbies" : [ "高尔夫球", "棒球" ], "friends" : [ "kobe", "curry", "james" ] }
可以使用下面的代码将PlayerStar对象序列化为字符串
//getInstance是一个为PlayerStar各属性赋值的初始化方法,可以参考本系列文章第一节:基础数据准备 PlayerStar jordan = PlayerStar.getInstance(); //ObjectMapper作为Jackson的API工具类存在 ObjectMapper mapper = new ObjectMapper(); String jsonInString2 = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jordan); System.out.println(jsonInString2);
使用@JsonPropertyOrder(alphabetic = true)
定义Java类成员变量的序列化顺序
@JsonPropertyOrder(alphabetic = true) public class PlayerStar { //成员变量定义和上文一致 }
在英语字母表中,age(a开头) > friends(f开头) ->hobbies(h开头),以此类推,所以最终JSON序列化结果如下:
{ "age" : 45, "friends" : [ "kobe", "curry", "james" ], "hobbies" : [ "高尔夫球", "棒球" ], "name" : "乔丹", "salary" : { "2000" : 10000000, "2010" : 62000000, "2020" : 112400000 } }
上述就是小编为大家分享的JSON框架Jackson中的属性序列化自定义与字母表排序是啥意思了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。