Json解析方式
- 前言
- 一、Json是什么?
- 简介
- 示例
- Java与Json
- 二、Json解析方式
- 2.1 Gson
- 将对象转换为JSON字符串
- 将JSON字符串转换为对象
- 2.2 FastJson
- 将对象转换为JSON字符串
- 将JSON字符串转换为对象
- 总结
前言
本文为学习笔记,简陋之处请多多包含
一、Json是什么?
简介
JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。
JSON就是一串字符串 只不过元素会使用特定的符号标注。
{} 双括号表示对象
[] 中括号表示数组
“” 双引号内是属性或值
: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
示例
{
"name":"伟杰老师",
"age":18,
"pengyou":["张三","李四","王二","麻子",{
"name":"老师",
"info":"像匹野马一样狂奔在技术钻研的道路上"
}],
"tezheng":{
"hobby":"画画",
"height":"180cm"
}
}
Java与Json
做什么?
将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象.
二、Json解析方式
2.1 Gson
将对象转换为JSON字符串
步骤:
1. 引入JAR包(示例:gson-2.8.6.jar)
2. String json = new Gson().toJSON(要转换的对象);
代码示例:
public class Demo1 {
public static void main(String[] args) {
//创建对象
Book book = new Book("100","金苹果","种植苹果");
//对象转json字符串
String s = new Gson().toJson(book);
System.out.println(s);
}
}
示例结果:
{"id":"100","name":"金苹果","info":"种植苹果"}
将JSON字符串转换为对象
步骤:
1. 引入JAR包(示例:gson-2.8.6.jar)
2. 对象 = new Gson().fromJson(JSON字符串,对象类型.class);
代码示例:
public class Demo1 {
public static void main(String[] args) {
Gson g = new Gson();
Book x = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果\"}",Book.class);
System.out.println(x.getId());
}
}
示例结果:
100
2.2 FastJson
将对象转换为JSON字符串
步骤:
1. 引入JAR包(示例:fastjson-1.2.70.jar)
2. 在需要转换JSON字符串的位置编写如下代码即可: String json=JSON.toJSONString(要转换的对象);
代码示例:
public class Demo1 {
public static void main(String[] args) {
Book book = new Book("100","金苹果","种植苹果");
String json = JSON.toJSONString(book);
System.out.println(json);
}
}
示例结果:
{"id":"100","info":"种植苹果","name":"金苹果"}
将JSON字符串转换为对象
步骤:
1. 引入JAR包 (示例:fastjson-1.2.70.jar)
2. 在需要转换Java对象的位置, 编写如下代码: 类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);
代码如下(示例):
public class Demo1 {
public static void main(String[] args) {
Book book = JSON.parseObject("{\"id\":\"100\",\"info\":\"种植苹果\",\"name\":\"金苹果\"}",Book.class);
System.out.println(book.getInfo());
}
}
示例结果:
种植苹果
总结
JSON对于移动设备来说,尤其对于网络环境较差和流量限制的情况下,相对于XML格式的数据传输会更节省流量,传输效率更高。解析方式中FastJson是国内阿里推出的,Gson是谷歌推出的,国内一般常用FastJson,效果上都大同小异,可根据团队使用进行选择。