ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

解决FastJSON反序列化顺序问题

2021-05-14 19:05:21  阅读:253  来源: 互联网

标签:FastJSON JSONField int private 顺序 排序 序列化 public


https://blog.csdn.net/meifannao789456/article/details/96828656

 
版权
fastjson默认在序列化时是按照字段的字母顺序进行序列化的,这样序列化出来的Json数据中字段的顺序就与类中定义的字段顺序不一致了。默认按字母排序序列化的速度会快一些,但是有时候我们并不希望按照字母顺序进行序列化。

现在提供几种方式来支持自定义序列化顺序。

自己设置排序规则,通过JSONType的orders来指定排序规则:
// 设置排序规则
@JSONType(orders={"user_name","passwd"})
public class LoginBean {
// 设置别名user_name
@JSONField(name="user_name")
private String userName; // 账户
private String passwd; // 密码
}
 
通过JSONField的ordinal来指定顺序,这个特性需要1.1.42以上版本
public static class VO {
@JSONField(ordinal = 3)
private int f0;

@JSONField(ordinal = 2)
private int f1;

@JSONField(ordinal = 1)
private int f2;
}
 


指定序列化的排序方式,使用Feature.OrderedField按照字段排序
JSON.parseObject("...", Feature.OrderedField)
 
官方提供的方式是配置JSONType.alphabetic的值为false,但是好像不太好用
@JSONType(alphabetic = false)
public static class B {
public int f2;
public int f1;
public int f0;

 
————————————————
版权声明:本文为CSDN博主「咻咻ing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/meifannao789456/article/details/96828656

标签:FastJSON,JSONField,int,private,顺序,排序,序列化,public
来源: https://www.cnblogs.com/kelelipeng/p/14769572.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有