作为一个java程序员,会经常用json发送信息的,所有json非常非常重要!
作为一个java程序员,我们是给别人发json的那个人,所以json的使用频率很高很高。
一共有两种经常用的json,一种是谷歌的Gson,另一种是阿里的fastjson
首先我们先从网址上下载这两个JSON的jar包再将它们导入idea中
github.com/google/gson 谷歌的
github.com/alibaba/fastjson 阿里的
我们先封装一个类取名Book;
import java.util.Objects; public class Book { private int id; private String name; private String info; public Book() { } public int getId() { return id; } public void setId(int 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; } @Override public String toString() { return "Book{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", info='" + info + '\'' + '}'; } public Book(int id, String name, String info) { this.id = id; this.name = name; 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(id, book.id) && Objects.equals(name, book.name) && Objects.equals(info, book.info); } @Override public int hashCode() { return Objects.hash(id, name, info); }
演示一:谷歌的
接收
public class Demo1 { public static void main(String[] args) { //将对象转换为字符串,谷歌的方式: //1.先去创建Gson对象 Gson g = new Gson(); //2.转换 Book b = new Book(100,"小熊","种植苹果真辛苦!"); String s = g.toJson(b); System.out.println(s); //{"id":100,"name":"小熊","info":"种植苹果真辛苦!"}这是结果 }
public class Demo2 { public static void main(String[] args) { //将对象转换为字符串,谷歌的方式: //1.先去创建Gson对象 Gson g = new Gson(); //2.转换: //{"id":100,"name":"小熊","info":"种植苹果真辛苦!"} Book.class是要转换的类型! Book b = g.fromJson("{\"id\":100,\"name\":\"小熊\",\"info\":\"种植苹果真辛苦!\"}",Book.class); System.out.println(b.getId()); } }
public class Demo3 { public static void main(String[] args) { //将对象转换为字符串,谷歌的方式: //1.先去创建Gson对象 Gson g = new Gson(); //2.转换: //{"id":100,"name":"小熊","info":"种植苹果真辛苦!","page":["qwer","rytu","wert"]} //HashMap.class是要转换的类型! //存了四个键值对,最后一个(page)是arrayList!会将数组部分转成List; HashMap data = g.fromJson("\"id\":100,\"name\":\"小熊\",\"info\":\"种植苹果真辛苦!\",\"page\":[\"qwer\",\"rytu\",\"wert\"]", HashMap.class); List page = (List) data.get("page"); System.out.println(page.get(1)); //结果是qwer } }
第二种阿里的fastjson
public class Demo4 { public static void main(String[] args) { Book book = new Book(1002,"hhhh","hahahaha"); //转换 String json = JSON.toJSONString(book); System.out.println(json); } }
public class Demo5 { public static void main(String[] args) { //转对象:{"id":100,"name":"小熊","info":"种植苹果真辛苦!"} Book book = JSON.parseObject("{\"id\":100,\"name\":\"小熊\",\"info\":\"种植苹果真辛苦!\"}",Book.class); System.out.println(book.getId()); } }
public class Demo6 { public static void main(String[] args) { // //转数组!["一二三","四五六","七八九"] List<String> strings = JSON.parseArray("[\"一二三\",\"四五六\",\"七八九\"]",String.class); System.out.println(strings.get(1)); } }
//结果是 四五六