JSON是一种轻量级的数据交换格式,因其格式简单、机器解析速度快等优点广泛应用于网络传输
数据格式
{
"name": "张三",
"sex": "男"
}
java中没有内置解析和反解析json的类,目前用得比较多的是阿里的fastjson和谷歌的Gson
引入jar包方法:
-
在项目根目录下新建文件夹lib
-
将下载好的jar包放入lib文件夹
-
修改设置,导入jar包
fastjson使用demo
// Book
package com.java;
public class Book {
private String id;
private String name;
private String info;
public Book() {
}
public Book(String id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
// demo
package com.java;
import com.alibaba.fastjson.JSON;
/**
* 用fastjson解析对象
*/
public class demo1 {
public static void main(String[] args) {
// 将对象转换为json
Book b1 = new Book();
String json1 = JSON.toJSONString(b1);
System.out.println(json1); // 未对属性初始化,打印结果:{}
Book b2 = new Book("1001", "如何阅读一本书", "教你如何阅读一本书");
String json2 = JSON.toJSONString(b2);
System.out.println(json2); // 打印结果: {"id":"1001","info":"教你如何阅读一本书","name":"如何阅读一本书"}
// 将json转换为对象
Book b3 = JSON.parseObject(json2, Book.class);
System.out.println(b3); // 调用 Book 的toString方法,打印结果:Book{id='1001', name='如何阅读一本书', info='教你如何阅读一本书'}
}
}
Gson使用demo
package com.java.com.java;
import com.google.gson.Gson;
import com.java.Book;
public class demo2 {
public static void main(String[] args) {
Book b1 = new Book();
String json1 = new Gson().toJson(b1);
System.out.println(json1); // 打印输出:{}
Book b2 = new Book("1001", "如何阅读一本书", "教你如何阅读一本书");
String json2 = new Gson().toJson(b2);
System.out.println(json2); // 打印输出:{"id":"1001","name":"如何阅读一本书","info":"教你如何阅读一本书"}
Book b3 = new Gson().fromJson(json2, Book.class);
System.out.println(b3); // 打印输出:Book{id='1001', name='如何阅读一本书', info='教你如何阅读一本书'}
}
}