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 格式的对象:

{
 “名字”:“保罗”,
 “男性”:正确,
 “年龄”:7,
 “父母”:[
 {
   “名字”:“彼得”,
   “男性”:正确,
   “年龄”:31,
   “父母” : null
 },
 {
   "name" : "Maria",
   "male" : false,
   "age" : 28,
   "parents" : null
 }
]
}

JSON 格式的评论

这里的一切都与 Java 中的完全相同。注释有两种类型:// 和/*...*/。我希望我不需要提醒你它们有何不同?