文章目录
前言
JSON——JavaScript Object Notation 是一种轻量级的数据交换格式,经常应用于网络数据传输,是重要的知识点之一,下面就来看看如何解析JSON文件一、Gson
1.建立Book类用于测试
代码如下:
class Book{
private String name;
private String info;
public Book(String name, String info) {
this.name = name;
this.info = info;
}
public Book() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
return Objects.equals(name, book.name) &&
Objects.equals(info, book.info);
}
@Override
public int hashCode() {
return Objects.hash(name, info);
}
}
2.引入JAR包
3.对象转换JSON字符串
利用Gson的toJson()方法
代码如下:
public class GsonTest {
public static void main(String[] args) {
Book book = new Book("钢铁是如何炼成的?","钢铁是这样炼成的");
Gson gs = new Gson();
String gsonString = gs.toJson(book);
System.out.println(gsonString);
}
}
运行结果:
4.JSON字符串转换对象
利用Gson的fromJson()方法,该方法传入JSON字符串返回对象
代码如下:
import com.google.gson.Gson;
import java.util.Objects;
public class GsonTest {
public static void main(String[] args) {
Gson gs = new Gson();
Book book = gs.fromJson("{\"name\":\"钢铁是如何炼成的?\",\"info\":\"钢铁是这样炼成的\"}",Book.class);
System.out.println("书的名字:"+book.getName());
System.out.println("书的信息:"+book.getInfo());
}
}
运行结果:
二、FastJson
1.建立Book类用于测试
引用上面建立的Book类
2.引入JAR包
同引入Gson包
3.对象转换JSON字符串
利用FashJson的toJsonString()方法
public class FastJsonTest {
public static void main(String[] args) {
Book book = new Book("钢铁是如何炼成的?","钢铁是这样炼成的");
String bJson = JSON.toJSONString(book);
System.out.println(bJson);
}
}
运行结果:
Gson的输出是以name开始,而FashJson的输出是以info开始,从结果可以看出Gson和FastJson的JSON解析方式不同,导致输出的结果不同。
4.JSON字符串转换对象
利用FastJson中的parseObject()方法,传入JSON字符串和的对象类文件,返回对象
import com.alibaba.fastjson.JSON;
import java.util.Objects;
public class FastJsonTest {
public static void main(String[] args) {
Book book = JSON.parseObject("{\"name\":\"钢铁是如何炼成的?\",\"info\":\"钢铁是这样炼成的\"}",Book.class);
System.out.println("书的名字:"+book.getName());
System.out.println("书的信息:"+book.getInfo());
}
}
运行结果: