跳到主要内容

1. Introduction (简介)

JavaScript 对象表示法 (JavaScript Object Notation, JSON) 是一种用于序列化结构化数据的文本格式. 它源自 JavaScript 的对象字面量, 如 ECMAScript Programming Language Standard, Third Edition [ECMA-262] 中所定义.

JSON 可以表示四种基本类型 (primitive type): 字符串 (string), 数字 (number), 布尔值 (boolean) 和 null, 以及两种结构化类型 (structured type): 对象 (object) 和数组 (array).

字符串是由零个或多个 Unicode 字符 [UNICODE] 组成的序列. 注意, 此引用指向 Unicode 的最新版本, 而不是某个特定版本. 预计 UNICODE 规范未来的变更不会影响 JSON 的语法.

对象是由零个或多个名称/值对 (name/value pair) 组成的无序集合, 其中名称 (name) 是字符串, 值 (value) 是字符串, 数字, 布尔值, null, 对象或数组.

数组是由零个或多个值组成的有序序列.

术语 "object" 和 "array" 来自 JavaScript 的约定.

JSON 的设计目标是最小化, 可移植, 文本化, 并且作为 JavaScript 的子集.

1.1. Conventions Used in This Document (本文档使用的约定)

本文档中的关键字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" 和 "OPTIONAL" 应按 [RFC2119] 中的描述解释.

本文档中的语法规则应按 [RFC5234] 中的描述解释.

1.2. Specifications of JSON (JSON的规范)

本文档更新了 [RFC4627], 后者描述了 JSON 并注册了媒体类型 "application/json".

ECMAScript specification [ECMA-262] Version 5.1 的 Section 15.12 使用 ECMAScript 术语描述了 JSON. [ECMA-404] 也描述了 JSON.

JSON 语法的所有规范都在该语言的语法元素上保持一致.

1.3. Introduction to This Revision (本修订版简介)

自 RFC 4627 发布以来, JSON 已得到非常广泛的使用. 这些经验揭示了一些模式, 它们虽为规范所允许, 却已经造成互操作性问题.

此外, 已报告少量勘误 (参见 RFC Errata IDs 607 [Err607] 和 3607 [Err3607]).

本文档的目标是应用这些勘误, 消除与其他 JSON 规范之间的不一致, 并突出说明可能导致互操作性问题的实践.