JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,它是基于JavaScript的一个子集,标准 ECMA-404 定义了这种格式,JSON是基于键值对的,其中键(key)是字符串,而值(value)可以是字符串、数字、数组、布尔值或者其他JSON对象。
JSON对象使用花括号“{}”来表示,对象内的键值对通过冒号“:”分隔,不同键值对之间用逗号“,”分隔,键必须是字符串,且必须用双引号包围,值可以是字符串、数字、数组、布尔值或者嵌套的JSON对象。
JSON数组使用方括号“[]”来表示,数组内的值通过逗号分隔,数组可以包含任意类型的值,包括其他JSON对象和数组。
下面是一个JSON对象的例子:
{ "name": "John", "age": 30, "is_student": false, "courses": ["Math", "English", "Science"], "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345" } }
在这个例子中,JSON对象包含了一个字符串键值对("name": "John"),一个数字键值对("age": 30),一个布尔值键值对("is_student": false),一个字符串数组键值对("courses": ["Math", "English", "Science"]),以及一个嵌套的JSON对象键值对("address": {...})。
常见问题与解答:
Q1: JSON和XML有什么区别?
A1: JSON和XML都是数据交换格式,但有一些关键的区别,JSON更简洁,易于阅读和编写,解析速度更快,而XML则更严格,支持注释和自我描述性数据。
Q2: JSON对象中的键是否区分大小写?
A2: 是的,JSON对象中的键是区分大小写的,如果键的大小写不同,它们会被视为不同的键。
Q3: 可以在JSON对象中使用特殊字符吗?
A3: 在JSON对象中,键(key)必须是字符串,且必须用双引号包围,值(value)如果是字符串,也必须用双引号包围,在字符串中,一些特殊字符需要进行转义,如双引号(")、反斜杠()、控制字符(如换行符n、制表符t等)。