JSON--轻量级的数据交换格式

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)可以是:
    数字(整数或浮点数)
    字符串(在双引号中)
    逻辑值(truefalse
    数组(在方括号中)
    对象(在花括号中)
    null
注意,truefalsenull 都没有双引号,否则将被视为一个 String 。

值(value可以是双引号括起来的字符串(string)、数值(number)、truefalsenull、对象(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 
street:Chaoyang Road
postcode:100025(整数)

用 JSON 表示如下:

{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}

其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,可以表示如下:

{"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
}
posted @ 2012-02-02 15:07  七天的空白  阅读(1147)  评论(0编辑  收藏  举报