Java解析Json


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 }

輸出Json格式:

 

2.將JSON字符串轉換為對象

​ ①引入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 }

輸出

 

二.FastJson

1.將JSON字符串轉換為對象

  1. 引入JAR包

  2. 在需要轉換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 }

    輸出

    2.將對象轉換為JSON字符串

    轉換JSON字符串的步驟:

    1. 引入JAR包

    2. 在需要轉換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 }

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM