Jackson fasterxml和codehaus, 和排序-order by
2017-02-03 15:22
1306 查看
fasterxml和codehaus的区别
是jackson的两个分支、也是两个版本的不同包名.- 1.x版本的包名是codehaus, 1.x版本现在只提供bug-fix;
- 2.0开始改用新的包名fasterxml, 2.x版本还在不断开发和发布中;
json的排序和equal
业务开发中遇到json的处理. 但是拿到的json的key的顺序是不稳定的.两个思路:
1.比较两个json是否相同;
2.递归遍历序列化排序, 转换为string.
比较两个json是否相同
可以使用jackson的ObjectNode.equals()public boolean equals(Object o) { if (o == this) return true; if (o == null) return false; if (o.getClass() != getClass()) { return false; } ObjectNode other = (ObjectNode) o; if (other.size() != size()) { return false; } if (_children != null) { for (Map.Entry<String, JsonNode> en : _children.entrySet()) { String key = en.getKey(); JsonNode value = en.getValue(); JsonNode otherValue = other.get(key); if (otherValue == null || !otherValue.equals(value)) { return false; } } } return true; }
order by 序列化json
private static final ObjectMapper SORTED_MAPPER = new ObjectMapper(); static { SORTED_MAPPER.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true); } private String convertNode(final JsonNode node) throws JsonProcessingException { final Object obj = SORTED_MAPPER.treeToValue(node, Object.class); final String json = SORTED_MAPPER.writeValueAsString(obj); return json; }
相关文章推荐
- 如何用 Linux 命令行工具解析和格式化输出 JSON
- 使用 Python 处理 JSON 格式的数据
- JSON、XML、TOML、CSON、YAML 大比拼
- XML 与 JSON 优劣对比
- 10分钟了解MySQL5.7对原生JSON的支持与用法
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- ajax与json 获取数据并在前台使用简单实例
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- C#实现集合转换成json格式数据的方法
- ASP JSON类文件的使用方法
- C# JSON格式化转换辅助类 ConvertJson
- C#实现对Json字符串处理实例
- js+ajax处理java后台返回的json对象循环创建到表格的方法