Java解析Json
做什么? 将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象.
一.GSON解析Json
1.将对象转换为JSON字符串
转换JSON字符串的步骤:
①引入JAR包
②在需要转换JSON字符串的位置编写如下代码即可: String json = new Gson().toJSON(要转换的对象);
1 import com.google.gson.Gson; 2 3 public class JsonDemo1 { 4 public static void main(String[] args) { 5 //1.创建gson对象 6 Gson g=new Gson(); 7 //2.转换 8 Book b=new Book("1001","百年孤独","人生感悟"); 9 String s=g.toJson(b); 10 System.out.println(s); 11 } 12 13 }
①引入JAR包
②在需要转换Java对象的位置, 编写如下代码: 对象 = new Gson().fromJson(JSON字符串,对象类型.class);
1 import com.google.gson.Gson; 2 //将Json字符串转换为对象 3 public class JsonDemo2 { 4 public static void main(String[] args) { 5 //1.创建gson对象 6 Gson g=new Gson(); 7 //2.转换 {"id":"百年孤独","name":"1001","info":"人生感悟"} 8 Book book = g.fromJson("{\"id\":\"百年孤独\",\"name\":\"1001\",\"info\":\"人生感悟\"}", Book.class); 9 System.out.println(book.getId()); 10 } 11 12 }
输出
3.将JSON字符串转换为对象集合
1 import java.util.HashMap; 2 3 //将Json字符串转换为对象 4 public class JsonDemo2 { 5 public static void main(String[] args) { 6 //1.创建gson对象 7 Gson g=new Gson(); 8 HashMap data = g.fromJson("{\"id\":\"百年孤独\",\"name\":\"1001\",\"info\":\"人生感悟\"}", HashMap.class); 9 System.out.println(data.get("id")); 10 } 11 }
输出
对象中的数组部分被转换为Arraylist
1 import java.util.HashMap; 2 3 //将Json字符串转换为对象 4 public class JsonDemo2 { 5 public static void main(String[] args) { 6 //1.创建gson对象 7 Gson g=new Gson(); 8 HashMap data = g.fromJson(" {\"id\":\"百年孤独\",\"name\":\"1001\",\"info\":\"人生感悟\",\"经典名句\":[\"生命中曾经有过的所有灿烂\",\"原来终究\",\"都需要用寂寞来偿还\"]}", HashMap.class); 9 System.out.println(data.get("经典名句")); 10 System.out.println(data.get("经典名句").getClass()); 11 } 12 }
输出
取出list中的内容
1 import com.google.gson.Gson; 2 3 import java.util.HashMap; 4 import java.util.List; 5 6 //将Json字符串转换为对象 7 public class JsonDemo2 { 8 public static void main(String[] args) { 9 //1.创建gson对象 10 Gson g=new Gson(); 11 HashMap data = g.fromJson(" {\"id\":\"百年孤独\",\"name\":\"1001\",\"info\":\"人生感悟\",\"经典名句\":[\"生命中曾经有过的所有灿烂\",\"原来终究\",\"都需要用寂寞来偿还\"]}", HashMap.class); 12 List page=(List) data.get("经典名句"); 13 System.out.println(page.get(0)); 14 } 15 }
输出
1.将JSON字符串转换为对象
-
引入JAR包
-
在需要转换Java对象的位置, 编写如下代码:类型 对象名=JSON.parseObject(JSON字符串, 类型.class);或List<类型> list=JSON.parseArray(JSON字符串,类型.class);
1 import com.alibaba.fastjson.JSON; 2 3 public class JsonDemo { 4 public static void main(String[] args) { 5 //1.转换 {"id":"1002","name":"百年孤独","info":"生命中曾经有过的所有灿烂,原来终究,都需要用寂寞来偿还"} 6 Book book = JSON.parseObject(" {\"id\":\"1002\",\"name\":\"百年孤独\",\"info\":\"生命中曾经有过的所有灿烂,原来终究,都需要用寂寞来偿还\"}", Book.class); 7 System.out.println(book.getInfo()); 8 } 9 }
输出
1 import com.alibaba.fastjson.JSON; 2 3 import java.util.List; 4 5 public class JsonDemo { 6 public static void main(String[] args) { 7 //["一二三","三四五","四五六"] 8 List<String> data=JSON.parseArray("[\"一二三\",\"三四五\",\"四五六\"]",String.class); 9 System.out.println(data.get(1)); 10 } 11 }
输出
转换JSON字符串的步骤:
-
引入JAR包
-
在需要转换JSON字符串的位置编写如下代码即可:String json=JSON.toJSONString(要转换的对象);
1 import com.alibaba.fastjson.JSON; 2 3 import java.util.List; 4 5 public class JsonDemo { 6 public static void main(String[] args) { 7 Book b=new Book("1001","百年孤独","人生感悟"); 8 String json= JSON.toJSONString(b); 9 System.out.println(json); 10 } 11 }
-