Java中的JSON解析
在Java中解析JSON可以使用谷歌的Gson或FastJson,这篇文件会介绍如何使用这两个jar。
首先我们先创建一个用来测试的类
import java.util.Objects;
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 + '\'' +
'}';
}
@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(id, book.id) && Objects.equals(name, book.name) && Objects.equals(info, book.info);
}
@Override
public int hashCode() {
return Objects.hash(id, name, info);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
}
- Gson
- 将对象转为JSON
import com.google.gson.Gson; public class Demo1 { public static void main(String[] args) { //1.创建一个Gson对象 Gson g = new Gson(); //2.转换 Book book = new Book("1", "梦断代码", "大佬们的翻车案例"); String json = g.toJson(book); System.out.println(json); } }
运行后的结果
- 将JSON转换对象
import com.google.gson.Gson; public class Demo2 { public static void main(String[] args) { //1.创建一个Gson对象 Gson g = new Gson(); //2.转换 Book book = g.fromJson("{\"id\":\"1\",\"name\":\"梦断代码\",\"info\":\"大佬们的翻车案例\"}", Book.class); System.out.println(book.toString()); } }
运行后的结果
- 解析[“123”, “456”, “789”]类型的数据
import com.google.gson.Gson; import java.util.HashMap; import java.util.List; /** * @author huangyong */ public class Demo3 { public static void main(String[] args) { Gson g = new Gson(); HashMap hashMap = g.fromJson("{\"page\":[\"123\",\"456\",\"789\"]}", HashMap.class); List page = (List) hashMap.get("page"); System.out.println(page.get(0)); } }
- FastJson
- 将对象转换为JSON
import com.alibaba.fastjson.JSON; public class Demo4 { public static void main(String[] args) { //1.创建对象 Book book = new Book("1", "梦断代码", "大佬们的翻车案例"); //2.转换 String json = JSON.toJSONString(book); System.out.println(json); } }
运行结果
- 将JSON转换为对象
import com.alibaba.fastjson.JSON; public class Demo5 { public static void main(String[] args) { Book book = JSON.parseObject("{\"id\":\"1\",\"info\":\"大佬们的翻车案例\",\"name\":\"梦断代码\"}", Book.class); System.out.println(book.toString()); } }
运行结果
- 解析[“123”, “456”, “789”]类型的数据
import com.alibaba.fastjson.JSON; import java.util.List; public class Demo6 { public static void main(String[] args) { List<String> list = JSON.parseArray("[\"123\",\"456\",\"789\"]", String.class); } }