JSON 是依据 JavaScript 中文字对象表示法的子集所创建的数据交换格式。虽然 JavaScript 可接受的文字值语法非常灵活,不过必须注意,JSON 的规则要严格得多。例如,根据 JSON 标准,对象成员的名称必须为有效的 JSON 字符串。JSON 中的字符串必须用引号括起来。而 JavaScript 则允许对象成员以引号或撇号分隔
JSON 标准 对于许多应用场合非常好用,但在另外一些情况下则存在缺陷,使用不太理想。XML 通常使用效果不太理想的领域之一是 Ajax 风格的 web 应用程序。Ajax 是用于构建交互式 web 应用程序的技术。
此类应用程序通过使用对 web 服务器的带外轻型调用来代替整页回发,从而提供了更为迅捷的用户体验。这些异步调用通过 JavaScript 在客户端进行初始化,涉及设置数据格式、将其发送到 web 服务器,以及分析和处理返回的数据。大多数浏览器可以构建、发送和分析 XML,而 JavaScript Object Notation(或 JSON)提供了一种适用于 Ajax 风格的 web 应用程序的标准数据交换格式。#t#
JSON 是一种基于文本的开放式数据交换格式(请参见 RFC 4627)。与 JSON 标准一样,它便于读者阅读、独立于平台,并且具有广泛的可实现性。根据 JSON 标准设置格式的数据是轻型的,可由 JavaScript 实现轻而易举地进行分析,使之成为适用于 Ajax web 应用程序的理想数据交换格式。JSON 主要是一种数据格式,因此它不局限于 Ajax web 应用程序,在任何场合,只要应用程序需要将结构化信息作为文本进行交换或存储,即可使用它。
本文探讨了 JSON 标准及其与 JavaScript 的关系,并将其与 XML 进行比较。文中讨论了用于 .NET 的开源 JSON 实现 Jayrock,并提供了许多使用 JavaScript 和 C# 创建和分析 JSON 消息的示例。
了解 JavaScript 中的文字表示法在编程语言中,文字用于“从字面上”表达固定值,如常量整数值 4 或字符串“Hello, World”。文字可用在大多数允许使用表达式的语言中,如控制语句的部分条件、调用函数时的输入参数、变量赋值等等。例如,以下 C# 和 Visual Basic 代码使用常量整数值 42 来初始化变量。
不同的编程语言允许使用不同类型的文字。大多数编程语言至少都支持标量类型的文字,如整数、浮点数、字符串和布尔值。对于 JavaScript 来说,有意思的一点是,除了标量类型之外,它还支持结构化类型的文字,如数组和对象。此功能允许在按需要创建和初始化数组及对象时使用简洁的语法。
JavaScript 中的数组文字由零个或多个表达式组成,每个表达式代表数组的一个元素。数组元素括在方括号内 ([]),并以逗号分隔。以下示例使用具有七大洲名称的七个字符串元素来“从字面上”定义数组。