JSON的介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JSON格式
JSON结构共有2种:
- 对象结构;
- 数组结构;
对象结构:一个对象,由一个大括号表示. 括号中 描述对象的属性 . 通过键值对来描述对象的属性
格式: 键与值之间使用冒号连接;
多个键值对之间使用逗号分隔;
键值对的键 应使用引号引住
var JSONName =
{
"键名1":值1,
.
.
.
"键名n":值n
}
数组格式:用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。
var JSONName =
[
{
"键名1":值1,
.
.
.
"键名n":值n
},
.
.
.
{
"键名1":值1,
.
.
.
"键名n":值n
}
]
JSON解析
Java中对于JSON的解析方式有很多中,这里讲解Gson解析方式和FastJson解析方式。
Gson解析方式
将对象转换为JSON字符串步骤:
1. 引入JAR包(下载地址)
3. 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
Student stu = new Student("1001","张三","男",22);
String json = new Gson().toJson(stu);
System.out.println(json);
------运行结果为:---------
{"id":"1001","name":"张三","sex":"男","age":22}
将JSON字符串转换为对象步骤:
1. 引入JAR包(下载地址)
2. 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
String json = "{\"id\":\"1001\",\"name\":\"张三\",\"sex\":\"男\",\"age\":22}";
Student stu = new Gson().fromJson(json, Student.class);
System.out.println(stu);
--------运行结果为:----------
Student [id=1001, name=张三, sex=男, age=22]
FastJson解析式
Fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自 阿里巴巴的工程师开发。
将对象转换为JSON字符串步骤:
1. 引入JAR包(下载地址)
3. 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
Student stu = new Student("1001","张三","男",22);
String json = JSON.toJSONString(stu);
System.out.println(json);
------运行结果为:---------
{"age":22,"id":"1001","name":"张三","sex":"男"}
将JSON字符串转换为对象步骤:
1. 引入JAR包(下载地址)
2. 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或 List list=JSON.parseArray(JSON字符串,类型.class);
String json = "{\"id\":\"1001\",\"name\":\"张三\",\"sex\":\"男\",\"age\":22}";
Student stu = JSON.parseObject(json, Student.class);
System.out.println(stu);
--------运行结果为:----------
Student [id=1001, name=张三, sex=男, age=22]