一、JSON
简介:JSON(JavaScript Object Notation) JS对象简谱 , 是一种轻量级的数据交换格式。
1.对象格式
同样是描述一个对象
1 一本书
2 书名 金苹果
3 简介 种苹果
java:
1 class book{
2 private String name;
3 private String info;
4 get/set...
5 }
6 Book b = new Book();
7 b.setName("金苹果");
8 b.setInfo("种苹果");
9 ...
js:
1 var b = new Object();
2 b.name = "金苹果";
3 b.info = "种苹果";
XML:
1 <book>
2 <name>金苹果</name>
3 <info>种苹果</info>
4 </book>
JSON:
1 {
2 "name":"金苹果",
3 "info":"种苹果"
4 }
JSON对象格式:
一个对象,由一个大括号表示。
括号中通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对)
格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔。
键值对的键应使用引号引住 (通常Java解析时,键不使用引号会报错。而JS能正确解析)
键值对的值, 可以是JS中的任意类型的数据
数组格式
在JSON格式中可以与对象互相嵌套
1 [元素1,元素2,元素3...]
2.对象格式举例
1 {
2 "name":"小李",
3 "age":18,
4 "pengyou":["张三","李四","王二","麻子",{
5 "name":"野马老师",
6 "info":"像匹野马一样狂奔在技术钻研的道路上"
7 }],
8 "heihei":{
9 "name":"大长刀",
10 "length":"40m"
11 }
12 }
二、Java与JSON
做什么?
将Java中的对象快速的转换为JSON格式的字符串。
将JSON格式的字符串转换为Java的对象。
1.Gson
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
1. 引入JAR包(点击下载)
2. 在需要转换JSON字符串的位置编写如下代码即可:
1 String json = new Gson().toJSON(要转换的对象);
案例
1 Book b = BookDao.find();
2 String json = new Gson().toJson(b);
3 System.out.println(json);
- 将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
1 对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:
1 String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三 \",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
2 Book book = new Gson().fromJson(json, Book.class);
3 System.out.println(book);
2.FastJson
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
1 String json=JSON.toJSONString(要转换的对象);
案例:
1 Book b = BookDao.find();
2 String json=JSON.toJSONString(b);
3 System.out.println(json);
- 将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
1 类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或者
1 List<类型> list=JSON.parseArray(JSON字符串,类型.class);
案例:
1 String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三 \",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
2 Book book = JSON.parseObject(json, Book.class);
3 System.out.println(book);