JSON是JavaScript Object Notation(JS对象简谱)的缩写, 是一种轻量级的数据交换格式。JDK没有内置的JSON解析工具。Java中常用的JSON解析工具时谷歌的Gson和阿里的FastJson。
首先创建JavaBean如下
public class Book {
private String id;
private String name;
private String info;
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
......
}
使用Gson解析JSON
使用Gson将Java对象转换为JSON字符串
Book b = new Book("100","金苹果","种植苹果真辛苦");
String s = new Gson().toJson(b);
System.out.println(s);
输出结果如下:
使用Gson将JSON字符串转换为Java对象
Gson g = new Gson();
//{"id":"100","name":"金苹果","info":"种植苹果真辛苦"}
Book b = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\"}", Book.class);
System.out.println(b);
输出结果如下:
使用Gson将JSON字符串转换为Map
Gson g = new Gson();
//{"id":"100","name":"金苹果","info":"种植苹果真辛苦","page":["锄禾日当午","汗滴禾下土","嘿嘿嘿嘿嘿"]}
HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"嘿嘿嘿嘿嘿\"]}", HashMap.class);
List page = (List) data.get("page");
System.out.println(page);
获取并打印其中的List,输出结果如下:
使用FastJson解析JSON
使用FastJson将Java对象转换为JSON字符串
Book book = new Book("1002", "唐诗三百首", "床前明月光,地上鞋一堆。床上我杰哥,喊十块钱一双。");
String json = JSON.toJSONString(book);
System.out.println(json);
输出结果如下:
使用FastJson将JSON字符串转换为Java对象
//{"id":"1002","info":"床前明月光,地上鞋一堆。床上我杰哥,喊十块钱一双。","name":"唐诗三百首"}
Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"床前明月光,地上鞋一堆。床上我杰哥,喊十块钱一双。\",\"name\":\"唐诗三百首\"}", Book.class);
System.out.println(book);
输出结果如下:
使用FastJson将JSON字符串转换为List
//["一二三","二三四","三四五"]
List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]", String.class);
System.out.println(strings);
输出结果如下: