Java Json 教程

JSON(JavaScript Object Notation),是一种简单易读的数据交换格式。 它在全球无数项目中很受欢迎并且实现,对于那些不喜欢XML的人来说,JSON是一个非常好的替代解决方案。

处理JSON的java工具很多,我们关注比较流行的Jackson 和 Google Gson。

Jackson

Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。

Jackson有以下特点:

  • 容易使用, jackson API提供了一个高层次外观,以简化常用的用例。
  • 无需创建映射, API提供了默认的映射大部分对象序列化。
  • 性能高 ,快速,低内存占用,适合大型对象图表或系统。
  • 干净的JSON , jackson创建一个干净和紧凑的JSON结果,这是让人很容易阅读。
  • 不依赖 , 库不需要任何其他的库,除了JDK。
  • 开源代码, jackson是开源的,可以免费使用。

JSON 提供了三种不同的方法来处理

  1. JSON 流式API , 读取并将JSON内容写入作为离散事件。 JsonParser读取数据,而JsonGenerator写入数据。它是三者中最有效的方法,是最低的开销和最快的读/写操作。它类似于Stax解析器XML。
  2. 树模型 ,准备JSON文件在内存里以树形式表示。 ObjectMapper构建JsonNode节点树。这是最灵活的方法。它类似于XML的DOM解析器。
  3. 数据绑定, 转换JSON并从POJO(普通Java对象)使用属性访问或使用注释。它有两个类型。
    • 简单的数据绑定 ,转换JSON和Java Maps, Lists, Strings, Numbers, Booleans 和null 对象。
    • 全部数据绑定 , 转换为JSON从任何JAVA类型。
  4. ObjectMapper读/写JSON两种类型的数据绑定。数据绑定是最方便的方式是类似XML的JAXB解析器。

Gson

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。

Gson的应用主要为toJson与fromJson两个转换函数,而在使用这种对象转换之前需先创建好对象的类别以及其成员才能成功的将JSON字符串成功转换成相对应的对象。

class User {
  private age = 5;
  private String username = "liyongzhen";
  User(){
  }     // default constructor
}

序列化JAVA对象成JSON字符串

User user = new User();
Gson gson = new Gson();
String json = gson.toJson(user);

反序列化JSON字符串成对应的JAVA对象

User user= gson.fromJson(json,User.class);