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());
}
}
示例结果:
种植苹果