转载来自:https://blog.csdn.net/long2010110/article/details/81537820

在开发过程中遇到一个问题,服务器经过排序返回后的字符串数据使用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();

另附:fastjson中Feature的用法及中文注解
转载来自:https://blog.csdn.net/xinyuan_java/article/details/102699418

/*** 这个特性,决定了解析器是否将自动关闭那些不属于parser自己的输入源。 如果禁止,则调用应用不得不分别去关闭那些被用来创建parser的基础输入流InputStream和reader;如果允许,parser只要自己需要获取closed方法(当遇到输入流结束,或者parser自己调用 JsonParder#close方法),就会处理流关闭。* 注意:这个属性默认是true,即允许自动关闭流
*/AutoCloseSource/*** 该特性决定parser将是否允许解析使用Java/C++ 样式的注释(包括'/'+'*' 和'//' 变量)。 由于JSON标准说明书上面没有提到注释是否是合法的组成,所以这是一个非标准的特性;尽管如此,这个特性还是被广泛地使用。* 注意:该属性默认是false,因此必须显式允许,即通过JsonParser.Feature.ALLOW_COMMENTS 配置为true。
*/AllowComment/*** 这个特性决定parser是否将允许使用非双引号属性名字, (这种形式在Javascript中被允许,但是JSON标准说明书中没有)。* 注意:由于JSON标准上需要为属性名称使用双引号,所以这也是一个非标准特性,默认是false的。* 同样,需要设置JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES为true,打开该特性。
*/AllowUnQuotedFieldNames/*** 该特性决定parser是否允许单引号来包住属性名称和字符串值。* 注意:默认下,该属性也是关闭的。需要设置JsonParser.Feature.ALLOW_SINGLE_QUOTES为true
*/AllowSingleQuotes/*** 该特性决定JSON对象属性名称是否可以被String#intern 规范化表示。如果允许,则JSON所有的属性名将会 intern() ;如果不设置,则不会规范化,默认下,该属性是开放的。此外,必须设置CANONICALIZE_FIELD_NAMES为true* 关于intern方法作用:当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串 (该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String* 对象添加到池中, 并且返回此 String 对象的引用。*/InternFieldNames//这个设置为true则遇到字符串符合ISO8601格式的日期时,会直接转换成日期类。AllowISO8601DateFormat//允许多重逗号,如果设为true,则遇到多个逗号会直接跳过;AllowArbitraryCommas//这个设置为true则用BigDecimal类来装载数字,否则用的是double;UseBigDecimal//忽略不匹配IgnoreNotMatch//如果你用fastjson序列化的文本,输出的结果是按照fieldName排序输出的,parser时也能利用这个顺序进行优化读取。这种情况下,parser能够获得非常好的性能SortFeidFastMatch//禁用ASMDisableASM//禁用循环引用检测DisableCircularReferenceDetect//对于没有值得字符串属性设置为空串InitStringFieldAsEmpty//支持数组to对象SupportArrayToBean//属性保持原来的顺序OrderedField//禁用特殊字符检查DisableSpecialKeyDetect//使用对象数组UseObjectArray;

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

  1. fastjson解析数据后导致顺序改变问题

    开发过程中遇到一个问题,服务器经过排序返回后的字符串数据使用fastjson解析后,数据顺序发生变化,引起业务异常. 解决办法: 1.解析时增加参数不调整顺序 JSONObject respondeB ...

  2. JSONObject.parseObject解析数据后保持顺序不变

    在开发过程中遇到一个问题:服务器经过排序返回后的字符串数据在使用fastjson解析后,数据顺序发生了变化,这个问题也就是:使用fastjson解析数据后导致顺序改变或者说是如何保持String字符串 ...

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

    Json解析数据导致顺序改变问题 json解析的时候,通常顺序会发生改变,如果我们有保持原有顺序的需求的话可以通过如下方式 使用fastJson的Feature.OrderedField JSONOb ...

  4. Android商城开发系列(六)——使用 OkHttpUtils 请求网络 + 使用 fastjson解析数据...

    OkHttp是Google推荐使用的一个开源的网络请求框架,Android开发中涉及到网络请求和接口调用现在大部分都是使用OkHttp,网上已经有不少人针对OkHttp进行了封装,这里推荐一下鸿洋大神 ...

  5. Json,Gson,FastJson解析数据比较

    String strData="{"trailers":[{"id":64259,"movieName":"<西游 ...

  6. fastjson解析多层数据_fastJson解析多层Json数据案例

    这里咱们来实现一个获取接口数据存入数据库的案例html 例如数据:java {   "code":200,   "msg":"ok",   ...

  7. 使用FastJson解析时有关内部类的两个问题

    1.内部类层次结构不对 假设有一个model类,代码如下: public class Model {public Data data;public class Data {public List< ...

  8. fastjson解析JSON数据乱序导致的问题

    本文作者:合肥工业大学 电子商务研究所 钱洋 email:1563178220@qq.com . 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 问题背景 问题解决 完整的案例代码 ...

  9. Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)

    JSON介绍: JSON:JavaScript对象表示法 JSON是存储和交换文本信息的语法. 特点: JSON是轻量级的文本数据交换格式 JSON独立于语言和平台 JSON具有自我描述性,更易理解 ...

最新文章

  1. 猪行天下之Python基础——7.1 文件存储
  2. 拼写检查工具是android,Android的文本和输入---拼写检查器(一)-Go语言中文社区...
  3. 如何设计通用的网站模板
  4. Docker+Redis镜像的原理以及部署安装(超详解附截图)
  5. 雅加达EE:干净的板岩
  6. (转)CDN是如何工作的?
  7. android 常用代码
  8. 在AD09中怎样同时高亮两个网络(即net)?按住Ctrl,鼠标点一个网络,按住Ctrl+Shift,鼠标再点另一个网络,想亮多少亮多少。
  9. 4600u黑苹果 r5_黑苹果集成显卡Intel HD Graphics 4400/4600 驱动方法
  10. 苹果PD20W火爆方案看这里!!!
  11. (转帖) cglib和jdk的区别
  12. 2022-2028年中国太阳能发电系统市场调查与市场需求预测报告
  13. Windows笔记本-U盘无法完成格式化
  14. CDC Schemes
  15. 沈家桢博士:缘起性空与人生
  16. 燕山大学C++实验报告
  17. elasticsearch从入门到入门系列(二)---快速入门A
  18. html 怎么设置鼠标效果,css怎么设置鼠标形状
  19. Windows磁盘管理概述
  20. 查看变量类型的python内置函数名_查看变量类型的Python内置函数是()

热门文章

  1. 基于Android的校园共享系统app
  2. 磁共振T1、T2有啥区别
  3. 基于 zigbee的城市道路路灯实时远程监控与节能系统
  4. 熟悉linux操作系统的使用实验报告,Linux系统的熟悉与使用操作系统实验报告
  5. 组装一台ITX小钢炮主机
  6. 关于C++的cannot bind non-const lvalue reference of type...问题
  7. cmake 增加-fPIC选项 gcc
  8. 二分图最大匹配及常用建图方法
  9. 10月第2周安全回顾 Web安全认证架构成型 PDF阅读器存漏洞
  10. 服务器远程管理卡:提升安全,方便管理