使用Jackson的JSON包,判断JSON是否相等
2015-09-06 11:06
591 查看
一般来说,使用google贡献的Gson包完全可以实现这个功能,但是由于某种原因(copyright or else,said by mentor Yang),这里使用Jackson提供的JSON包实现,这个实现也非常强大。
1. 首先需要下载jar包:jackson-databind-2.4.4.jar
jackson-annotations-2.4.4.jar jackson-core-2.4.2.jar,
网址在:http://wiki.fasterxml.com/JacksonDownload
2.实现判断功能
2.1 不使用POJO类
2.2 使用POJO类
还是将POJO类中的属性和JSON中的key名称一一对应。
主要就是ObjectMapper的使用。
具体请参考下面链接,reference:
使用Jackson框架解析Json示例
推荐一个将JSON字符串格式化的工具:http://pro.jsonlint.com/
当你拿到一堆复杂没有格式化的JSON字符串时,很难看清其中的结构,从而不能更快的创建POJO类,使用这个工具就一目了然了。
同时,这里也像上篇一样,提供一份Online Doc(v2.2.2):点击这里。
1. 首先需要下载jar包:jackson-databind-2.4.4.jar
jackson-annotations-2.4.4.jar jackson-core-2.4.2.jar,
网址在:http://wiki.fasterxml.com/JacksonDownload
2.实现判断功能
2.1 不使用POJO类
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; String str1 = "{\"properties\":{\"packet\":{\"recorded_at\":\"2015-09-02 04:45:45 +0000\",\"userId\":\"100000000000001\",\"meta\":{\"account\":\"xxx\",\"event\":\"track\"},\"fields\":{\"gyroData\":{\"rotation_y\":-1,\"rotation_z\":-1,\"rotation_x\":-1},\"accelerometerData\":{\"acceleration_x\":-1,\"acceleration_z\":-1,\"acceleration_y\":-1},\"location\":{\"speed\":4.68,\"speed_course\":0.7,\"horizontal_accuracy\":10,\"longtitude\":-122.02359082,\"vertical_accuracy\":-1,\"latitude\":37.33385024},\"pedometerData\":{\"step_count\":0}},\"recorded_sample_rate\":5}},\"geometry\":{\"type\":\"Point\",\"coordinates\":[37.33385024,-122.02359082]},\"type\":\"Feature\"}"; String str2 = "{\"properties\":{\"packet\":{\"recorded_at\":\"2015-09-02 04:45:45 +0000\",\"userId\":\"100000000000001\",\"meta\":{\"account\":\"xxx\",\"event\":\"track\"},\"fields\":{\"gyroData\":{\"rotation_y\":-1,\"rotation_z\":-1,\"rotation_x\":-1},\"accelerometerData\":{\"acceleration_x\":-1,\"acceleration_z\":-1,\"acceleration_y\":-1},\"location\":{\"speed\":4.68,\"speed_course\":0.7,\"horizontal_accuracy\":10,\"longtitude\":-122.02359082,\"vertical_accuracy\":-1,\"latitude\":37.33385024},\"pedometerData\":{\"step_count\":0}},\"recorded_sample_rate\":5}},\"geometry\":{\"type\":\"Point\",\"coordinates\":[37.33385024,-122.02359082]},\"type\":\"Feature\"}"; ObjectMapper mapper = new ObjectMapper(); JsonNode doc = mapper.readTree(str1); ObjectMapper mapper1 = new ObjectMapper(); JsonNode doc1 = mapper1.readTree(str2); System.out.println(doc.equals(doc1));
2.2 使用POJO类
还是将POJO类中的属性和JSON中的key名称一一对应。
主要就是ObjectMapper的使用。
ObjectMapper mapper = new ObjectMapper(); Bean bean = mapper.readValue(new File("custom.json"), Bean.class);
具体请参考下面链接,reference:
使用Jackson框架解析Json示例
推荐一个将JSON字符串格式化的工具:http://pro.jsonlint.com/
当你拿到一堆复杂没有格式化的JSON字符串时,很难看清其中的结构,从而不能更快的创建POJO类,使用这个工具就一目了然了。
同时,这里也像上篇一样,提供一份Online Doc(v2.2.2):点击这里。
相关文章推荐
- jsapi支付,提示redirect_uri 参数错误
- JSP或HTML的命名规范
- JS对象深度克隆
- json教程系列(5)-json错误解析
- Javascript模块化编程-初识[1]
- json教程系列(4)-optXXX方法的使用
- 了解 JavaScript (4)– 第一个 Web 应用程序
- Gson:比较两个JSON字符串是否完全相等
- json教程系列(1)-使用json所要用到的jar包下载
- js 作用域链&内存回收&变量&闭包
- js实现简洁的TAB滑动门效果代码
- IE浏览器请求json数据弹出下载框问题
- js javascript:void(0) 真正含义
- javascript作用域链(Scope Chain)初探
- js实现左侧网页tab滑动门效果代码
- js中立即执行函数的介绍
- 读取文本文件里的Json数据
- iOS7之后JavaScript与Objective-C之间的通信
- javascript深入理解js闭包
- 浅谈javascript函数式编程