JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集,JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等),这些特性使JSON成为理想的数据交换语言。
JSON的基本数据类型有四种:数字、字符串、布尔值和数组,数字可以是整数或浮点数,字符串必须用双引号括起来,布尔值只能是true或false,数组是值的有序集合,一个数组以"["开始,以"]"结束,数组中的每个元素用逗号分隔。
在JSON中,我们可以使用键值对的形式来表示复杂的数据结构,我们可以使用键值对来表示一个人的信息:
"name": "张三",
"age": 30,
"isMarried": false,
"hobbies": ["reading", "traveling", "swimming"],
"address": {
"city": "北京",
"street": "朝阳路",
"postcode": "100000"
}
在这个例子中,"name", "age", "isMarried", "hobbies", "city", "street", "postcode"都是键,它们的值分别是"张三"、30、false、["reading", "traveling", "swimming"]、"北京"、"朝阳路"、"100000",注意,键必须是字符串,而值可以是任意类型的数据。
我们还可以使用嵌套的键值对来表示更复杂的数据结构,我们可以使用嵌套的键值对来表示一个人的地址信息:
"name": "张三",
"age": 30,
"isMarried": false,
"hobbies": ["reading", "traveling", "swimming"],
"address": {
"city": "北京",
"street": "朝阳路",
"postcode": "100000"
}
在这个例子中,"address"是一个嵌套的键值对,它的值是另一个对象,这个对象包含了三个键值对:"city"、"street"和"postcode"。
JSON还支持一些特殊的字符,例如双引号、斜杠和回车符,如果需要在JSON字符串中使用这些字符,我们需要进行转义,如果我们需要在字符串中包含一个双引号,我们可以使用\"来进行转义:
"name": "张三说:“我喜欢吃苹果。”",
"age": 30,
"isMarried": false,
"hobbies": ["reading", "traveling", "swimming"]
在这个例子中,我们使用了\"来进行转义,所以字符串中的双引号不会被解析为字符串的结束标志。
JSON是一种非常实用的数据交换格式,它可以用于表示各种复杂的数据结构,无论是在Web开发中,还是在服务器端和客户端之间的数据交换中,JSON都发挥着重要的作用。