最流行的JSON介紹與同JS轉化和Java轉化的方式 -JavaWeb篇

寫在前面: 今天結束了JavaWeb階段,收穫了很多知識,接下來還需要繼續努力,開始學習更多的框架與提升知識。

若覺得文章對你有幫助可以個點贊支持 ^ _ ^

如果你喜歡Java可以相互學習~

作者公衆號:小白編碼

什麼是Json?

JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。JSON採用完全獨立於語言的文本格式,而且很多語言都提供了對json 的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這樣就使得JSON 成爲理想的數據交換格式。

  • json 是一種輕量級的數據交換格式。
  • 輕量級指的是跟xml 做比較。
  • 數據交換指的是客戶端和服務器之間業務數據的傳遞格式。

Json格式如何定義:(在JS中)

json 是由鍵值對組成,並且由花括號(大括號)包圍。每個鍵由引號引起來,鍵和值之間使用冒號進行分隔,多組鍵值對之間進行逗號進行分隔。

Json格式:

var jsonObj = {
    
    "key1":123,
    "key2":"abc",
    "key3":true,
    "key4":[12,"abcd",false],
    "key5":{
        "key5_1":"JSON對象形式",
        "key5_2":123
    },
    "key6":[{
        "key6_1_1":"Json對象數組",
        "key6_1_2":121
    },{
        "key6_2_1":"arr_1",
        "key6_2_2":true
    }]
};

Json在Js中使用:

  • Json一般由Json對象形式存在或者Json字符串形式存在
  • 兩個常用的方法:
  • JSON.stringify() 把json對象轉化成json字符串
  • JSON.parse() 把json字符串轉化成json對象
//把json對象轉化成json字符串
var jsonObjStr = JSON.stringify(jsonObj);
 console.log(jsonObjStr);//控制檯輸出
控制檯結果:{"key1":123,"key2":"abc","key3":true,"key4":[12,"abcd",false],"key5":{"key5_1":"JSON對象形式","key5_2":123},"key6":[{"key6_1_1":"Json對象數組","key6_1_2":121},{"key6_2_1":"arr_1","key6_2_2":true}]}
//把json字符串轉化成json對象
 var jsonStrParse = JSON.parse(jsonObjStr);
 console.log(jsonStrParse);
控制檯結果:
Object
key1: 123
key2: "abc"
key3: true
key4: Array(3)
0: 12
1: "abcd"
2: false
length: 3
__proto__: Array(0)
key5:
key5_1: "JSON對象形式"
key5_2: 123
__proto__: Object
key6: Array(2)
0:
key6_1_1: "Json對象數組"
key6_1_2: 121
__proto__: Object
1: {key6_2_1: "arr_1", key6_2_2: true}
length: 2
__proto__: Array(0)
__proto__: Object

Json在Java中使用:(javaBean與json互轉)

這裏json與java互轉使用了(Gson的jar包)三種轉化:

  • 先導入Gson的jar包gson-2.2.4.jar(add Libraries)添加依賴
  • 普通的互轉
  • List與json的互轉
  • Map與json的互轉

首先創建JavaBean:(get,set,構造器,tostring自行添加)

public class Student {
    
    private Integer id;
    private String name;
}

普通的互轉:

@Test
    public void test1(){
        //這裏new一個Student
        Student student = new Student(1,"小白");
        //創建Gson實例
        Gson gson = new Gson();
        //toJson()可以把java對象轉化成Json字符串
        String stuJsonStr = gson.toJson(student);
        System.out.println(stuJsonStr);
        // fromJson 把json 字符串轉換回Java 對象
        // 第一個參數是json 字符串
        // 第二個參數是轉換回去的Java 對象類型
        Student stuObj = gson.fromJson(stuJsonStr, Student.class);
        System.out.println(stuObj);
    }
控制檯輸出結果:
{"id":1,"name":"小白"}//Json字符串
Student{id=1, name='小白'}//Student對象

List與json的互轉:

  @Test
    public void test2(){
        //創建一個StudentList
        List<Student> studentList = new ArrayList<>();
        //向list中添加兩名學生
        studentList.add(new Student(1,"小白"));
        studentList.add(new Student(2,"小黑"));
        //實例化Gson對象
        Gson gson = new Gson();

        //將List轉化成Json字符串
        String stuListJsonStr = gson.toJson(studentList);
        System.out.println(stuListJsonStr);

        //將Json字符串轉化成List對象
        //第二個參數需要傳入一個Type類型的形參,需要一個類集成Gson中的TypeToken
        //這裏第二個參數我使用(匿名內部類演示)節省空間
        List<Student> list = gson.fromJson(stuListJsonStr,new TypeToken<List<Student>>(){}.getType());
        System.out.println(list);
        //這裏過去list中第一個對象
        Student student = list.get(0);
        System.out.println(student);
    }
控制檯結果:
[{"id":1,"name":"小白"},{"id":2,"name":"小黑"}]                 //這個是Json字符串打印
[Student{id=1, name='小白'}, Student{id=2, name='小黑'}]	   //這個是list集合打印
Student{id=1, name='小白'}								  //這個是打印list集合中第一個stu對象

Map與Json互轉:

   @Test
    public void test3() {
        //實例化一個Map
        Map<Integer, Student> stuMap = new HashMap<>();
        //向map中存放兩名Student
        stuMap.put(1, new Student(1, "小白"));
        stuMap.put(2, new Student(2, "小黑"));
        //實例化Gson
        Gson gson = new Gson();
        //將map對象轉化成json字符串格式
        String stuMapJsonStr = gson.toJson(stuMap);
        System.out.println(stuMapJsonStr);
        //將json字符串轉回Map對象
        //原理同上List
        Map<Integer, Student> josnToStuMap = gson.fromJson(stuMapJsonStr, new TypeToken<Map<Integer, Student>>(){}.getType());
        System.out.println(josnToStuMap);
        //獲得map中第一個對象
        Student student = josnToStuMap.get(1);
        System.out.println(student);

    }
控制檯結果:
[{"id":1,"name":"小白"},{"id":2,"name":"小黑"}]           //json字符串
[Student{id=1, name='小白'}, Student{id=2, name='小黑'}] //map對象
Student{id=1, name='小白'}							//map中第一個對象

最後:

以上內容就是簡單的json的介紹和java與js將json互轉的內容。

寫的不好請見諒!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章