1. 程式人生 > 其它 >JSON初學習

JSON初學習

技術標籤:筆記jsonjava

文章目錄

(一)JSON簡介

簡介:
JSON: JavaScript Object Notation JS物件簡譜 , 是一種輕量級的資料交換格式.

(二)JSON格式

<1>物件格式

一個物件, 由一個大括號表示.
括號中 描述物件的屬性 . 通過鍵值對來描述物件的屬性 (可以理解為, 大括號中, 包含的是一個個的鍵值對.)

格式:
鍵與值之間使用冒號連線, 多個鍵值對之間使用逗號分隔.
鍵值對的鍵 應使用引號引住 (通常Java解析時, 鍵不使用引號會報錯. 而JS能正確解 析.)
鍵值對的值, 可以是JS中的任意型別的資料

JSON:

{
 "name":"水滸傳",
  " info":"梁山一百零八好漢起義的故事""price":"32.0"
 }

<2>陣列格式

在JSON格式中可以與物件互相巢狀
[元素1,元素2…]

案例

 {
        "name"
:"唐僧", "country":"大唐", "tudi":["豬八戒","沙僧","白龍馬",{ "name":"孫悟空", "info":"女媧補天所留五彩石所化" }], "treasure":{ "name"
:"紫金缽", "use":"化緣" } }

(三)JSON解析

<1>Gson

【1】將物件轉換為JSON字串

轉換JSON字串的步驟:

  1. 引入JAR包
  2. 在需要轉換JSON字串的位置編寫如下程式碼即可:
    String json = new Gson().toJSON(要轉換的物件);
    案例:Book b = BookDao.find();
    String json = new Gson().toJson(b); System.out.println(json);
package Demo;
import com.google.gson.Gson;
public class Demo {
    public static void main(String[] args) {
        //1.建立JSON物件
       Hero h = new Hero("宋江",1,"及時雨");
       //2.轉化
       String s =  new Gson().toJson(h);
        System.out.println(s);
    }
}

在這裡插入圖片描述

【2】將JSON字串轉換為物件

將JSON字串轉換為物件

  1. 引入JAR包
  2. 在需要轉換Java物件的位置, 編寫如下程式碼:
    物件 = new Gson().fromJson(JSON字串,物件型別.class);
    案例:
    String json = "{“id”:1,“name”:“水滸傳”,“author”:"施耐庵 “,“info”:“梁山一百零八好漢起義的故事”,“price”:32.0}”;
    Book book = new Gson().fromJson(json, Book.class); System.out.println(book);
package Demo;
import com.google.gson.Gson;
public class Demo1 {
    public static void main(String[] args) {
        //1.建立JSON物件
        Gson g = new Gson();
        //2.轉化{"name":"宋江","num":"1","info":"及時雨"}
        Hero h = g.fromJson("{\"name\":\"宋江\",\"num\":\"1\",\"info\":\"及時雨\"}",Hero.class);
        String s =  new Gson().toJson(h);
        System.out.println(s);
    }
}

在這裡插入圖片描述

<2>FastJson

【1】將物件轉換為JSON字串

轉換JSON字串的步驟:

  1. 引入JAR包
  2. 在需要轉換JSON字串的位置編寫如下程式碼即可:
    String json=JSON.toJSONString(要轉換的物件);
    案例:Book b = BookDao.find();
    String json=JSON.toJSONString(b);
    System.out.println(json);

import com.alibaba.fastjson.JSON;
public class Demo2 {
    public static void main(String[] args) {
        Hero h = new Hero("宋江",1,"及時雨");
        //1.轉化
        String s = JSON.toJSONString(h);
        System.out.println(s);
    }
}

在這裡插入圖片描述

【2】將JSON字串轉換為物件

  1. 引入JAR包
  2. 在需要轉換Java物件的位置, 編寫如下程式碼:
    型別 物件名=JSON.parseObject(JSON字串, 型別.class);

    List<型別> list=JSON.parseArray(JSON字串,型別.class); 案例:String json = "{“id”:1,“name”:“水滸傳”,“author”:"施耐庵 “,“info”:“梁山一百零八好漢起義的故事”,“price”:32.0}”;
    Book book = JSON.parseObject(json, Book.class);
    System.out.println(book);
import com.alibaba.fastjson.JSON;
public class Demo3 {
    public static void main(String[] args) {
        //1.轉化{"name":"宋江","num":"1","info":"及時雨"}
       Hero h = JSON.parseObject("{\"name\":\"宋江\",\"num\":\"1\",\"info\":\"及時雨\"}", Hero.class);
        System.out.println(h);
        System.out.println(h.getInfo());
        System.out.println(h.getName());
        System.out.println(h.getNum());
    }
}

在這裡插入圖片描述