(一)概念
JSON:JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换格式。
JSON在99年开始出现,到05年前后时得到广泛的使用,超过了XML的行业地位,成为跨平台数据交换的主流格式。
JSON相对于XML,有如下几个优势:1,程序员解析JSON的程序代码简单;2,机器解析JSON的效率高,速度快;3,JSON格式的表述数据占用空间小,网络传输速度就快。
但为什么XML仍有很多人在用?除了个别是需要利用XML的专有特性外,少部分是开发者的使用习惯,最主要的原因是:已投入运营的应用,要整体更换数据交换的格式,需要耗费大量人力、财力的,同时还可能涉及到应用系统的生态问题(如果有系统生态的话)。
(二)格式
一个对象,由一对大括号表示,括号中描述对象的属性,通过键值对来描述对象的属性(大括号中,包含的是一个个键值对)。
键值对的格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔;
键值对的键,应使用引号引住(通常JAVA解析时,键不使用引号会报错,二JS能准确解析);
键值对的值,可以是JS中任意类型的数据。
值还可以是对象,从而呈现对象嵌套形式,
例:
{
"name":"zhangsan1",
"age":18,
"pengyou":["lisi","wangwu",{
"name":"zhangsan2"
"age":19
}],
"hehe":{
"name":"dao",
"length":"40"
}
}
(三)Java与JSON
可以将JAVA中的对象,快速转换为JSON格式的字符串,也可以将JSON格式的字符串,转换为JAVA的对象。
应用类一:Gson
1. 将对象转换为JSON字符串
步骤:
(1)引入JAR包
(2)使用语法:
String json = new Gson().toJson(要转换的对象)
例:
Book b = BookDao.fand();
String json =new Gson().toJson(b);
System.out.println(json);
2. 将JSON字符串转换为对象
步骤:
(1)引入JAR包
(2)使用语法:
对象 = new Gson().fromJson(JSON字符串,对象类型.class)
例:
String json = "{\"id\":1,\"name":\"苹果\",\"作者\":\"张三\",\"info\":\"种苹果\"}";
Book book = new Gson().fromJson(json,Book.class);
System.out.println(book);
应用类二:FastJson
1. 将对象转换为JSON字符串
(1)引入JAR包
(2)使用语法:
String json = JSON.toJSONString(要转换的对象);
例:
Book b = BookDao.find();
String json = JSON.toJSONString(b);
System.out.println(json);
2.将JSON字符串转换为对象
(1)引入JAR包
(2)使用语法:
类型 对象名 = JSON.parseObject(JSON字符串 ,类型.class);
或
List<类型> list JSON.parseArray(JSON字符串 ,类型.class);
例:
String json = "{\"id\":1,\"name\":\"金苹果\",\"作者\":\"张三\",\"info\":\"种金苹果\"}"";
Book book = JSON.parseObject(json , Book.class);
System.out.println(book);