JSON简介
尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回HTML片段来构建动态 Web 页面。和返回XML并解析它相比,返回 HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。 现在, JSON 为 Web 应用开发者提供了另一种数据交换格式。同 XML 或 HTML 片段相比,JSON 提供了更好的简单性和灵活性。
HTML/XML与JavaScript
HTML用于格式化并显示数据。HTML 被设计用来显示数据,其焦点是数据的外观。
XML是独立于软件和硬件的信息传输工具。XML 被设计用来传输和存储数据。其焦点是数据的内容。
XML 被设计用来结构化、存储以及传输信息。XML不会做任何事情,仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。XML仅仅是纯文本。有能力处理
纯文本的软件都可以处理 XML。不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。
JavaScript是一种解释性的脚本语言(代码执行不进行预编译),它独立于操作平台(不依赖特定的机器和操作系统)。
JavaScript的作用:
1.检验用户输入的内容
功能性检验:与服务器端的数据库关联
格式性检验:发生在客户端
2.有效地组织网页内容
3.动态地显示网页内容
4.创建动画
如何用 JSON 表示数据
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON使用JavaScript语法(JSON 语法是 JavaScript 语法的子集)来描述数据对象,但是JSON仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON和XML类似也是基于纯文本的数据格式
JSON 值(value)可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
true
、
false
和
null
都没有双引号,否则将被视为一个 String 。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true
、false
、 null
、对象(object)或者数组(array)。这些结构可以嵌套。
JSON 数据格式
JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。下面给出对象和数组的表示方法:
图 1. Object 的表示结构(花括号保存对象)
图 2. Array 的表示结构(方括号保存数组)
Object 对象在 JSON 中是用 {}
包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的 Map<String, Object>
,而不是 Java 的 Class 。注意 Key 只能用 String 表示。
例如,一个 Address 对象包含如下 Key-Value:
city:Beijing |
用 JSON 表示如下:
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025} |
其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,可以表示如下:
{"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
}