文章目录
一、简介
JSON,全称:JavaScript Object Notation,是一种常见的轻量级的数据交换格式,在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言。
Json与XML的比较:体积小,节省流量,只是不如XML直观,可读性稍微差一点
二、对象格式
例子:
class Book{
private String name;
private String info;
get/set...
}
Book b = new Book();
b.setName(“金苹果”);
b.setInfo(“种苹果”);
......
//js
var b = new Object();
b.name = "金苹果";
b.info = "种苹果";
//xml
<book>
<name>金苹果</name>
<info>种苹果</info>
</book>
//JSON
{
"name":"金苹果",
"info":"种苹果"
}
一个对象, 由一个大括号表示。 括号中描述对象的属性。通过键值对来描述对象的属性 (可以理解为, 大括号中 包含的是一个个的键值对)
格式:
- 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
- 键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错,而JS能正确解析)
- 键值对的值, 可以是JS中的任意类型的数据
注意:在JSON格式中可以与对象互相嵌套 [元素1,元素2…]
例如:
{
"name":"伟杰老师",
"age":18,
"pengyou":["张三","李四","王二","麻子",{
"name":"野马老师",
"info":"像匹野马一样狂奔在技术钻研的道路上"
}],
"hobby":{
"name":"学习",
"length":"40"
}
}
三、json解析
3.1 Gson
Gson 是谷歌开发支持的,这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。 下载地址
1、将对象转换为JSON字符串
-
引入JAR包
-
在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
案例:
Book b = BookDao.find();
String json = new Gson().toJson(b);
System.out.println(json);
2、将JSON字符串转换为对象
-
引入JAR包
-
在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:
String json = "{\"id\":\"1002\",\"info\":\"小学生必备。\",\"name\":\"唐诗三百首\"}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);
3.2 FastJson
fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。下载地址
1、将对象转换为JSON字符串
-
引入JAR包
-
在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
案例:
Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);
2、将JSON字符串转换为对象
-
引入JAR包
-
在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
案例:
String json = "{\"id\":\"1002\",\"info\":\"小学生必备。\",\"name\":\"唐诗三百首\"}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);
idea实际应用
1、创建存储jar的单独目录,将所需要的jar包均复制在该目录下
2、新添加的jar包无法直接使用,需要进行一些配置
file----->Project Structure----->library------>modules
添加好library后点击modules,点击添加配置好的jar包
验证配置效果,当jar包可以展开时说明配置成功。
运行效果图: