最近项目中用到了fastjson(1.2.15)需要将前端多层嵌套json转换为map,由于map的无序性,想了很多办法,最终找到使用 Map m= JSONArray.parseObject(json, LinkedHashMap<String,String>.class); 来转换,问题来了,第一层顺序是对的,但是第二层排序居然出问题了,目前仅仅只是需要转换成String 他居然把String都给自动排序了,后来网上查了很多资料发现还可以采用一种方式:
JSONObject jsonObj = new JSONObject(true); Map m= jsonObj.parseObject(json, LinkedHashMap.class);
但是输出问题还是存在第二层以后排序混乱,如下:
传入Json:
{"t1":"","t3":"","t2":{"a1":"","a3":"","a2":""}}
输出:
{t1=, t3=, t2={"a1":"","a2":"","a3":""}}
无奈,跟踪fastjson源码,花了2小时在com.alibaba.fastjson.parser.DefaultJSONParser 类中475行发现
else if (ch == '{') { // 减少嵌套,兼容android
lexer.nextToken();
final boolean parentIsArray = fieldName != null && fieldName.getClass() == Integer.class;
JSONObject input = new JSONObject(lexer.isEnabled(Feature.OrderedField));
居然这里面判断了Feature.OrderedField
果断知道了解决办法:
HashMap m= JSON.parseObject(json,LinkedHashMap.class,Feature.OrderedField);
搞定,输出结果:
{t1=, t3=, t2={"a1":"","a3":"","a2":""}}
功夫不负有心人.........
相关推荐
实现json转换,fastjson json json转换,可以帮助开发中涉及json格式处理的程序猿。
使用fastjson 解析实体嵌套,只要一行代码就可以解析负责的json嵌套.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
fastjson版本低于1.2.47出现的远程代码漏洞解决方案。
比较好用的两个json生产工具,并且一直再用效率高依赖少。
通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
很好用的JAVA类转JSON工具:FastJSON (2).pdf很好用的JAVA类转JSON工具:FastJSON (2).pdf
Volley。fastJson解析网络Json ,多线程显示图片,简单缓存图片,万能适配器,完美解决图片排序混乱问题,完美解决图片多次加载问题
FastJOSN工具类转map,利用fastjson对 json转map的工具类
使用fastjson.jar解析复杂的json数据,包含完整实例代码
使用fastjson 解析实体嵌套,只要一行代码就可以解析负责的json嵌套
3. 支持Java Bean:fastjson可以将JSON字符串转换成Java Bean,也可以将Java Bean转换成JSON字符串。 4. 支持泛型:fastjson支持泛型类型的解析和序列化。 5. 支持JSONPath:fastjson支持JSONPath表达式查询。 6. 支持...
fastjson解析json数据,解析速度快
高版本的fastjson-1.2.71解决安全漏洞
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。 Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。 Fastjson 源码地址:...
Fastjson,可以将String快速转换为正确的Json格式,也可以将Json转换为String 。提高代码效率,排除因手动拼接组合Json而产生的问题。
当项目中使用了fastjson框架转换json字符串后,默认情况下会有$ref这样的引用方式。 如果不使用此引用,在重复嵌套时,可能会耗尽系统资源。 但是如果启用的话,在页面js中又无法正常使用。 现只需要引入此js文件,...
使用阿里巴巴提供的fastjson可以快速的实现java对象和json串之间的相互转换,避免字符串拼接的繁琐!
fastjson-1.1.35.jar ,fastjson-1.1.36.jar ,fastjson-1.1.37.jar ,fastjson-1.1.44.jar ,fastjson-1.2.3.jar,fastjson-1.2.4.jar
List转换为List<Map>, List转换为List<Object> list转化为 JsonArray ,list转换JsonArray
Fastjson 是一个 阿里巴巴提供的Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。