自学内容网 自学内容网

【无标题】

JSON 文本格式的详细语法要求

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。以下是 JSON 的详细语法要求,覆盖每个组成部分和格式规范:


1. 基本规则

  • JSON 文本必须是 UTF-8 编码
  • JSON 文本的顶层元素可以是 对象数组
  • JSON 的键和值必须用以下几种基本类型表示:
    • 对象{}):键值对的无序集合。
    • 数组[]):值的有序集合。
    • 字符串:用双引号包裹的文本。
    • 数字:支持整数、小数、科学计数法。
    • 布尔值truefalse
    • null:表示空值。

2. JSON 对象

对象语法
  • JSON 对象由 {} 包裹。
  • 对象中包含键值对,格式为:"key": value
  • 键必须是双引号包裹的 字符串
  • 键值对之间用逗号分隔。
  • 键必须唯一,同一对象中不能有重复键。
示例
{
    "name": "Alice",
    "age": 25,
    "isStudent": false,
    "hobbies": ["reading", "traveling"]
}


3. JSON 数组

数组语法
  • JSON 数组由 [] 包裹。
  • 数组中的值用逗号分隔。
  • 数组可以包含任何类型的值,包括对象、数组、字符串、数字、布尔值和 null。
示例
[
    "apple",
    "banana",
    "cherry"
]
嵌套数组

数组可以包含数组,支持任意层级嵌套:

[
    [1, 2, 3],
    ["a", "b", "c"],
    [true, false, null]
]


4. JSON 键

键语法
  • 必须是双引号包裹的 字符串
  • 键名中不能包含以下字符:
    • 反斜杠(\
    • 双引号("),除非使用转义。
    • 控制字符(如回车 \r、换行 \n)。
示例
{
    "valid_key": "value",
    "another_key": 123
}

非法键示例
{
    unquotedKey: "value"   // 错误,键必须加双引号
}


5. JSON 值

JSON 的值可以是以下几种类型:

(1) 字符串
  • 必须用双引号 " 包裹。
  • 字符串支持转义字符,包括:
    • \":双引号
    • \\:反斜杠
    • \/:正斜杠
    • \b:退格符
    • \f:换页符
    • \n:换行符
    • \r:回车符
    • \t:制表符
    • Unicode 转义:\uXXXX(四位十六进制表示)
字符串示例
{
    "message": "Hello, World!",
    "escaped": "Line1\\nLine2",
    "unicode": "Smiley: \\u263A"
}

(2) 数字
  • 支持整数和浮点数。
  • 负数以 - 开头。
  • 小数点后必须有至少一位数字(例如不能写作 1.,需写成 1.0)。
  • 支持科学计数法(例如 1e10)。
数字示例
{
    "integer": 42,
    "negative": -42,
    "float": 3.14159,
    "scientific": 6.022e23
}

(3) 布尔值
  • 只能是 truefalse(不区分大小写)。
布尔值示例
{
    "isActive": true,
    "isDeleted": false
}

(4) Null
  • null 表示空值。
Null 示例
{
    "optionalField": null
}


6. 空格和格式化

  • JSON 中的空格、换行符和缩进不会影响解析,可用于提高可读性。
  • 通常缩进使用 2 或 4 个空格
示例

紧凑格式:

{"name":"Alice","age":25}

可读性优化:

{
    "name": "Alice",
    "age": 25
}


7. 注意事项

(1) 最外层必须是对象或数组

以下是合法的 JSON:

{
    "key": "value"
}

["value1", "value2"]

以下是非法的 JSON:

"key": "value"  // 错误,最外层必须是对象或数组

(2) 逗号问题
  • 对象或数组的最后一个元素后不能有逗号:
{
    "key1": "value1",
    "key2": "value2"
}

错误示例:

{
    "key1": "value1",
    "key2": "value2",
}

(3) 重复键
  • JSON 对象中的键名必须唯一:
{
    "key": "value1",
    "key": "value2"  // 错误,键名重复
}


8. JSON 文件的 MIME 类型

  • MIME 类型为:application/json
  • 文件扩展名为:.json

9. 常见错误和解决方法

(1) 键未加双引号
{key: "value"}  // 错误

正确:

{"key": "value"}

(2) 使用单引号
{'key': 'value'}  // 错误

正确:

{"key": "value"}

(3) 值后多余逗号
{
    "key": "value",
}  // 错误

正确:

{
    "key": "value"
}


原文地址:https://blog.csdn.net/m0_53605808/article/details/145168748

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!