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 }

       

posted @ 2021-10-24 11:26  SumerWine  阅读(1338)  评论(0编辑  收藏  举报