JSON解析教程

 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。由于它的便捷性可以实现对象的传输。本篇重点说明java解析JSON的几种方式。

Java官方并没有出台JSON的解析工具,市面上主流的有以下两种:

  • GSON:谷歌出品,稳定好用
  • FastJson:阿里研发,国内主流

 

接下来分别介绍这两种JSON解析工具如何实现JSON和对象的互转。

  • GSON
  1. 将对象转成JSON格式

先new一个Gson对象,调用它的toJson()方法,并传入对象。

//1. 创建对象
Book b = new Book("1", "金苹果", "种苹果");
//2. 转换成Json字符串
String s = new Gson().toJson(b);
System.out.println(s);

     2. 将JSON转回对象

仍是new Gson对象,调用fromJson()方法,参数1:JSON字符串,参数2:对象的类。

//1. 创建Json字符串
String s = "{\"id\":\"1\",\"name\":\"金苹果\",\"info\":\"种苹果\"}";
//2. 转换成对象
Book book = new Gson().fromJson(s, Book.class);
System.out.println(book.getName());

      3.将JSON转换成集合

如果暂时没有想转的类,可以先将JSON转成集合。

还是调用fromJson()方法,参数1:JSON字符串,参数2:集合类。

有一个注意点是JSON中有数组的话实际返回的类并不是String

//{"id":"1","name":"金苹果","info":"种苹果","page":["锄禾日当午","汗滴禾下土"]}
//1. 创建Json字符串
String s = "{\"id\":\"1\",\"name\":\"金苹果\",\"info\":\"种苹果\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\"]}";
//2. 转换成map集合
HashMap hashMap = new Gson().fromJson(s, HashMap.class);
System.out.println(hashMap.get("page").getClass());
//3. 实际返回的是ArrayList,所以把它转换成List
List page = (List) hashMap.get("page");
System.out.println(page.get(1));
  • FastJson
  1. 将对象转成JSON格式

FastJson不用new对象,直接调用静态方法toJSONString(),传入对象。

//1. 创建对象
Book b = new Book("1", "金苹果", "种苹果");
//2. 转换成Json字符串
String s = JSON.toJSONString(b);
System.out.println(s);

     2. 将JSON转回对象 

调用静态方法parseObject(),参数1:JSON字符串,参数2:对象的类。

//1. 创建Json字符串
String s = "{\"id\":\"1\",\"name\":\"金苹果\",\"info\":\"种苹果\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\"]}";
//2. 转化成对象
Book b = JSON.parseObject(s, Book.class);
System.out.println(b.getName());

       3.将JSON转换成集合

FastJson也能将JSON转换成集合。

调用方法parseObject(),参数1:JSON字符串,参数2:List中元素的类

//1. 创建数组字符串
String s = "[\"床前明月光\",\"疑是地上霜\",\"举头望明月\",\"低头思故乡\"]";
//2. 转化成集合
List strings = JSON.parseArray(s, String.class);
System.out.println(strings.get(1));

 

 

你可能感兴趣的:(json,java)