JSON: 一种轻量级数据交换格式
格式
对象
{
"属性名1":"属性值1",
"属性名2":"属性值2",
"属性名3":"属性值3"
}
注意:属性值可以是 JS( JavaScript ) 中的任意类型的数据
数组
[元素1,元素2...]
在JSON格式中可以与对象互相嵌套
{
"name":"XXX",
"age":18,
"pengyou":["xx","xx","xx","xx",{
"name":"xx",
"info":"xxxxx"
}],
"summit":{
"name":"xxxx",
"length":"6688km"
}
}
JSON解析
关注这样两个问题:
- 将Java中的对象 快速的转换为 JSON格式的字符串.
- 将JSON格式的字符串, 转换为Java的对象.
注意:JAVA官方无,所以要引入JAR包。下面这两个都是开源的库,是最常用的,但可能有安全漏洞,要时刻关注新版本。
Gson(谷歌的,推荐)
- 将对象转换为JSON字符串
在需要转换JSON字符串的位置写:
String json = new Gson().toJSON(要转换的对象);
Book b = BookDao.find();
String json = new Gson().toJson(b);
System.out.println(json);
- 将JSON字符串转换为对象
在需要转换Java对象的位置写:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
String json = "{\"id\":1,\"name\":\"xxx\",\"author\":\"XXX\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);
FastJson(阿里的)
- 将对象转换为JSON字符串
在需要转换JSON字符串的位置写
String json=JSON.toJSONString(要转换的对象);
Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);
- 将JSON字符串转换为对象
在需要转换Java对象的位置写
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
String json = "{\"id\":1,\"name\":\"xxx\",\"author\":\"XXX\",\"info\":\"xxxxxx\",\"price\":198.0}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);