使用fastjson解析数据后导致顺序改变问题

在开发过程中遇到一个问题,服务器经过排序返回后的字符串数据使用fastjson解析后,数据顺序发生变化,引起业务异常。

解决办法:

1、解析时增加参数不调整顺序

JSONObject respondeBodyJson = JSONObject.parseObject(jsonStr, Feature.OrderedField);
2、初始化json对象为有序对象:

JSONObject retObj = new JSONObject(true);
这样生成的json对象就与放入数据时一致。

3、使用Gson解析

JsonObject returnData = new JsonParser().parse(replyString).getAsJsonObject();
————————————————
版权声明:本文为CSDN博主「long2010110」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/long2010110/article/details/81537820

原文地址:https://www.cnblogs.com/lvchengda/p/12604053.html

时间: 2024-11-02 14:35:54

使用fastjson解析数据后导致顺序改变问题的相关文章

Json解析数据导致顺序改变问题

json解析的时候,通常顺序会发生改变,如果我们有保持原有顺序的需求的话可以通过如下方式 1.使用fastJson的Feature.OrderedField JSONObject respJson = JSONObject.parseObject(jsonStr, Feature.OrderedField); 2.初始化JSONObject的时候 JSONObject(boolean ordered); 3.可以使用Google的Gson,使用gson解析的话是怎么传就是什么顺序 JsonObj

ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault的问题

解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault. 打印下得到的字典数据: “username”=<null> 此时如果将字典保存到userDefault中会报错 所以需要遍历字典将其替换 for (NSString*s in [Dict1 allKeys]) { if ([Dict1[s] isEqual:[NSNull null]]) { [Dict1 setObject:@""

nagios下给监控项添加监控数据,导致无法画图

前两天给nagios下某个监控项添加监控数据后,发现监控数据是有了,但是后来才发现,图形数据没有了,一下子还不知道是哪的问题 以下是我排查问题的步骤: 登录nagios服务器上,查看/home/data/nagios/var/nagios.log是否有报错,我这边没有查到相关报错信息 然后再到/home/data/nagios/share/perfdata/查看相关的rrd文件有没有更新 查到这步我发现我下边的xml文件实时更新,但是rrd文件没有更新,很奇怪不知道是什么原因 后来查到rrdto

一步一步开发sniffer(Winpcap+MFC)(五)莫道无人能识君,其实我懂你的心——解析数据包(转)

前文已经讲过,解析数据包主要通过analyze_frame()这个函数实现的,实际上并非这个函数完成了所有的功能,其实从名字就可以看出,它只是完成了对“帧”的解析,也就是链路层数据的解析,还有analyze_arp().analyze_ip().analyze_ip6().analyze_icmp()……等来完成其他协议层的解析工作. 为什么会这样定义?熟悉协议栈工作流程的都知道,数据是由应用层把数据加上应用层协议头后给传输层,传输层在最外面加上它的头部后给网络层,网络层在外面加上它的头部后再给

EMC Isilon(OneFS)删除重要数据后恢复案例

[故障描述]某大学因黑客入侵,导致其"教学系统"的重要数据被删除.其中包括"教学系统"中的MSSQL数据库,以及大量的MP4.ASF和TS类型的视频教学文件.整体存储架构采用EMC高端网络NAS(Isilon S200),节点数量为3个,每个节点配置12块3T STAT硬盘,无SSD.所有数据一共分两部分,一部分数据为vmware虚拟机(WEB服务器),通过NFS协议共享到ESX主机,另一部分数据为视频教学文件,通过CIFS协议共享给虚拟机(WEB服务器).黑客只删

深度解析数据缓存技术

1.缓存概述 ? 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题.提供高性能的数据快速访问. 1.1.缓存的原理 将数据写入/读取速度更快的存储(设备): 将数据缓存到离应用最近的位置: 将数据缓存到离用户最近的位置; 1.2.缓存分类 在分布式系统中,缓存的应用非常广泛,从部署角度有以下几个方面的缓存应用: - CDN缓存: - 反向代理缓存: - 分布式Cache: - 本地应用缓存: 1.3.缓存媒介 常用中间件:Varnish,Ngnix,Squid,

python爬虫——爬取网页数据和解析数据

1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.只要浏览器能够做的事情,原则上,爬虫都能够做到. 2.网络爬虫的功能   图2 网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些金融信息,并进行投资分析等. 有时,我们比较喜欢的新闻网站可能有几个,每次

(转)JSON 之FastJson解析

一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson:功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持Android:开源 (Apache 2.0) Fastjson API入口类是com.alibaba.fastjso

mysql 插入数据后返回当前的自增ID方法

存储过程的写法: mysql>create procedure test( ->in username varchar(50), ->in password varchar(50), ->out userid int) ->begin ->set @sql=concat("insert into user(`username`,`password`) values(' ",username,"' ,' ",password,&qu