package com.java.demo2;import com.google.gson.Gson;
/**
* 对象->JSON字符串 Gson
*/
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);}}
将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:
String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"李伟杰\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);
图书book类包含JSON这些属性就能转,不包含就会有数据丢失。要是没有类跟他对上,可以直接转Map集合。Demo3.
package com.java.demo2;import com.google.gson.Gson;
/**
* JSON字符串转回对象 Gson
*/
public class Demo2 {
public static void main(String[] args){
//1. 创建Gson对象 当然如果只用一次可以写完匿名对象
Gson g = new Gson();
//2. 转换 {"id":"100","name":"金苹果","info":"种植苹果真辛苦"}\表示转义
Book book = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\"}", Book.class);
System.out.println(book.getInfo());}}
package com.java.demo2;import com.google.gson.Gson;import java.util.HashMap;import java.util.List;
/**
* JSON字符串转Map Gson 解析JSON
*/
public class Demo3 {
public static void main(String[] args){
//1. 创建Gson对象 当然如果只用一次可以写成匿名对象
Gson g = new Gson();
//2. 转换 {"id":"100","name":"金苹果","info":"种植苹果真辛苦","page":["锄禾日当午","汗滴禾下土","疑是地上霜"]}\表示转义
HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"疑是地上霜\"]}", HashMap.class);
System.out.println(data.get("name"));
//JSON字符串包含数组集合则转了之后变为ArrayList
System.out.println(data.get("page").getClass());
System.out.println(data.get("page"));
//复杂对象简单解析
List page =(List) data.get("page");
System.out.println(page.get(0));}}
package com.java.demo2;import com.alibaba.fastjson.JSON;
/**
* 对象解析为字符串,FastJson
*/
public class Demo4 {
public static void main(String[] args){
Book book = new Book("1001","迷失","我迷路了");
//1. 转换
String json = JSON.toJSONString(book);
System.out.println(json);}}