深入理解fastjson
2019-02-22 18:07
483 查看
fastjosn在遍历输出是默认是无序的因为这样是最快的
但是如果想保持有序,fastjson也提供了解决办法
就是加一个参数Feature.OrderedField
实例如下
val text: String = JSON.toJSONString(JSON.parseObject(str,Feature.OrderedField), SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullBooleanAsFalse, SerializerFeature.WriteMapNullValue, SerializerFeature.PrettyFormat)
跟踪fastjson源码,在com.alibaba.fastjson.parser.DefaultJSONParser 类中475行发现:
原因是:在fastjson会进行Feature.OrderField的判断
else if (ch == '{') { // 减少嵌套,兼容android lexer.nextToken(); final boolean parentIsArray = fieldName != null && fieldName.getClass() == Integer.class; <span style="color: #ff0000;"><strong>JSONObject input = new JSONObject(lexer.isEnabled(Feature.OrderedField)</strong></span>); ``
相关文章推荐
- 深入理解JQuery中$.get()、$.post()、$.getJSON()、$.ajax()方法
- 深入理解Python对Json的解析
- 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
- 深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
- 深入理解JSON对象
- JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON
- 深入理解JQuery中$.get()、$.post()、$.getJSON()、$.ajax()方法
- 深入理解PHP JSON数组与对象
- 深入理解JSON数据源格式
- 深入理解JavaScript系列(9):根本没有“JSON对象”这回事!
- 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
- 深入理解JSON
- 由ArrayList来深入理解Java中的fail-fast机制
- 深入理解JavaScript系列(9):根本没有“JSON对象”这回事!
- 深入理解JavaScript系列 ----(9):根本没有“JSON对象”这回事!
- TensorFlow之深入理解Fast Neural Style
- 深入理解 JavaScript 中的 JSON
- 深入理解JQuery中$.get()、$.post()、$.getJSON()、$.ajax()方法
- TensorFlow之深入理解Fast Neural Style
- 深入理解JQuery中$.get()、$.post()、$.getJSON()、$.ajax()方法