Json简介及用java解析
什么是Json:
JSON( JavaScript Object Notation) 是JS对象简谱 , 是一种轻量级的数据交换格式.
可以将Java中的对象 快速的转换为 JSON格式的字符串, 也可以将JSON格式的字符串, 转换为Java的对象.
Json格式:
一个对象, 由一个大括号表示。 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对.)
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔. 键值对的键 应使用引号引住(通常Java解析时, 键不使用引号会报错. 而JS能正确解 析.) 键值对的值, 可以是JS中的任意类型的数据
//Json:
{
"name":"书名",
"info":"书的简介"
}
这个Json所描述的java对象可以用java这样表示:
class Book{
private String name;
private String info;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
public class BookTest{
public static void main(String[] args){
Book b = new Book();
b.setName(“书名”);
b.setInfo(“书的简介”);
}
}
在JavaScript中,这样表示:
var b = new Object();
b.name = "书名";
b.info = "书的简介";
也可以使用XML表示:
<book>
<name>书名</name>
<info>书的简介</info>
</book>
在Json中,属性也可以用数组表示,数组的格式是:[元素1,元素2…],属性值也可以设置为对象
其中,数组内的元素可以是数字、字符串,还可以是对象,举个例子:
//Json:
{
"name":"书名",
"info":"书的简介"
"bookshelf":["第一本书","第二本书",{
"name":"第三本书",
"info":"书的简介"
}]
"author":{
"name":"作者1"
"age":20
}
}
Json分类:
Gson
是由谷歌公司发布的
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
由对象转为Json:
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换
Book b = new Book("书名","书的简介");
String s = g.toJson(b);
System.out.println(s);
- 将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
由Json转换为java对象:
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换 : {"name":"书名1","info":"简介1"}
Book b = g.fromJson("{\"name\":\"书名1\",\"info\":\"简介1\"}", Book.class);
System.out.println(b.getName());
FastJson
是由阿里巴巴公司发布的
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
Book book = new Book("书名1","简介1");
//1. 转换
String json = JSON.toJSONString(book);
System.out.println(json);
- 将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 或
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
//1. 转换 : {"info":"简介1","name":"书名1"}
Book book = JSON.parseObject("{\"info\":\"简介1\",\"name\":\"书名1\"}", Book.class);
System.out.println(book.getName());
如何导入Jar包:
将准备好的Jar包复制,在Project下新建一个lib文件夹
将jar包复制到这个文件夹下(刚粘贴过来左边是没有小三角的,不能单击打开)
打开文件-项目结构:导入一个src
再点击Libraries,点击刚创建好的src,点击加号,选中刚刚粘贴过来的jar包就完成了。