1. 程式人生 > 其它 >json知識點總結(一)--基礎介紹

json知識點總結(一)--基礎介紹

前言

JSON是一種輕量化的資料編碼方式它不依賴於程式語言是獨立的文字格式。和xml相比JSON具有格式簡潔,轉譯速度快的特點,因此現在被廣泛使用。JSON的本質是字串,採用了特定的分隔方式對字串進行分隔。

 

一、JSON的語法

JSON物件語法有物件、陣列和二者混合等方式。

JSON物件的屬性儲存類似於鍵值對的儲存方式,用“{}”來分隔物件,採用的是“:”分隔變數名稱和值,對於JAVA來說變數名稱和值都必須用” ”修飾否則會報錯。各變數之間用“,”分隔,注意最後一個變數不能加“,”。

例項如下:

{"name":"張曼玉","number":"YT1995","address":"上海"}

2、陣列語法

JSON陣列之間使用“[]”來分隔,陣列元素間用“,”隔開。元素型別可以為任意型別

例項如下:

["768547","456","124","545"]

3、混合使用

混合使用則是將物件和陣列混合使用,同時還可以巢狀使用。

示意如下:

{"name":"[]","number":"YT1995","address":"上海"}

 

二、json的轉化功能的使用

1.匯入jar檔案

目前常用的JSON轉化工具有谷歌的Gson和阿里的fastjson,這兩的工具都是jar檔案,使用時將下載的jar檔案匯入專案中既可以使用jar進行轉換。

 

2.jar中的轉換功能的使用

1、Gson中進行資料轉換

類到字串:1建立Gson物件,2建立類物件,3呼叫toJson方法將類物件轉化成字串

package Demo;
 
import com.google.gson.Gson;
 
public class Demo2 {
    public static void main(String[] args) {
        Gson g=new Gson();//建立Gson物件
        Student s=new Student("張曼玉","YT1995","上海");//建立學生物件
        String s1 = g.toJson(s);//將學生物件轉化為字串
        System.out.println(s1);
    }
}

字串到類:1建立Gson物件,2.呼叫fromJson方法轉化字串

package Demo;
 
import com.google.gson.Gson;
 
public class Demo1 {
    public static void main(String[] args) {
       Gson g=new Gson();
      String data="{\"name\":\"張曼玉\",\"number\":\"YT1995\",\"address\":\"上海\"}";
        Student s1 = g.fromJson(data, Student.class);//將字串轉化為物件
        System.out.println(s1);
    }
}

2、fastjson中進行資料轉換

類到字串:與Gson不同的是fastjson不需要建立Gson物件而是直接呼叫方法將類轉化為字串;而且打印出的物件順序也與Gson不同。

package Demo;
 
import com.alibaba.fastjson.JSON;
 
public class Demo3 {
    public static void main(String[] args) {
        //{"name":"張曼玉","number":"YT1995","address":"上海"}
        //{"address":"河南","name":"柳巖","number":"hn1314"}
        Student s1=new Student("柳巖","hn1314","河南");//建立學生類
        String s = JSON.toJSONString(s1);//將學生類轉化為字串
        System.out.println(s);
    }
}

字串到類:同樣也不需建立物件而是直接呼叫JSON.parseObject方法實現字串到類的轉化

package Demo;
 
import com.alibaba.fastjson.JSON;
 
import java.util.List;
 
public class Demo4 {
    public static void main(String[] args) {
        String data="{\"address\":\"河南\",\"name\":\"柳巖\",\"number\":\"hn1314\"}";
        Student s1 = JSON.parseObject(data, Student.class);//將字串轉化為類
        System.out.println(s1);
    }
}