JSON 是將數據表示為文本的最流行格式之一。例如,JSON用於前端和後端之間、配置文件、遊戲、文本編輯器和許多其他領域的數據傳輸。作為程序員,肯定會遇到JSON。

語法介紹

讓我們列出 JSON 中可用的數據類型:

  1. 字符串是用雙引號括起來的任何字符:

    “kwerty”
    “125 + 42”
    “G”

    特殊字符用斜杠轉義:

    “第一行\n第二行”
    "他說,"你好!""
  2. 數字,包括負數和實數。沒有報價:

    18 -333 17.88 1.2e6
  3. 布爾值是true / false(無引號)。

  4. null是表示“無”的標準值。這裡不使用引號。

  5. Array - 這種類型可以包含任何其他類型的值。它被包裹在方括號中。它的元素用逗號分隔:

    ["代碼", "健身房", "CodeGym", "¯\_(ツ)_/¯"]
    [真,真,假,真,假,假,假,假,假]
    [[1, 2], [3, 999, 4, -5], [77]]

    最後一個例子是數組的數組

  6. 對象——這種複雜類型是最常用的。它包含鍵值對,其中值可以是上面列出的任何類型,也可以是其他對象。它被包裹在花括號中,並且以逗號分隔:

    
    {
     "name": "Dale",
     "age": 7
    }
    

將 Java 對象表示為 JSON

現在讓我們使用一些 Java 對象,看看它作為 JSON 是什麼樣子的。

首先,讓我們定義一個類:


public class Human {
	String name;
	boolean male;
	int age;
	Set<Human> parents;

	public Human(String name, boolean male, int age) {
    	    this.name = name;
    	    this.male = male;
    	    this.age = age;
	}
}

現在讓我們創建我們的對象:


	Human father = new Human("Peter", true, 31);
	Human mother = new Human("Mary", false, 28);
	mother.parents = new HashSet<>();
	Human son = new Human("Paul", true, 7);
	son.parents = Set.of(father, mother);

現在讓我們試著代表兒子盡可能準確地使用 JSON 格式的對象:

{
 "name" : "Paul",
 "male" : true,
 "age" : 7,
 "parents" : [
 {
   "name" : "Peter",
   "male" : true,
   "age" : 31,
   "parents" : null
 },
 {
   "name" : "Maria",
   "male" : false,
   "age" : 28,
   "parents" : null
 }
]
}

JSON 格式的評論

這裡的一切都與 Java 中的完全相同。有兩種類型的註釋:// 和/*...*/。我希望我不需要提醒你它們有何不同?