JSON
JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与JavaScript、ActionScript语言交互,下列将详细介绍JSON 格式及其分别在客户端和服务器进行JSOn格式数据的处理。
为什么需要JSON格式?
尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。现在, JSON 为 Web 应用开发者提供了另一种数据交换格式。让我们来看看 JSON 到底是什么,同 XML 或 HTML 片段相比,JSON 提供了更好的简单性和灵活性。
JSON数据格式解析:
和XML一样,JSON也是基于纯文本的数据格式。由于它天生是为JavaScript等一些Script语言准备的,因此其数据的格式非常简单,你可以用JSON传输一个简单的字符串、数字、布尔值、数组,或者一个复杂的Object对象。String,Number 和 Boolean 用 JSON 表示非常简单。例如,用 JSON 表示一个简单的 String “ abc ”,其格式为:“abc”。JSON还可以表示一个数组对象,使用[ ] 包含所有元素,每个元素用逗号分隔,元素可以是任意类型,如,以下数据包含了一个String,Number,Boolean和一个Object:
[ "abc", 123, false , null]
Object对象在JSON中是用{}包含一系列无序的Key - Value键值对表示的,实际上此处的Object相当于Java中的Map<String, Object>,而不是Java的Class。注意Key只能用String表示。例如,一个Address对象包含如下的key-Value:
city: ShangHai street : YiJiang Road postcode:202014
用JSON表示如下:
{ "city" : "ShangHai" , "street" : "YiJiang Road", "postcode": 202014 }
其中Value也可以是另一个Object或数组,因此复杂的Object可以嵌套表示,例如一个Person对象包含name和address,可以表示如下:
{ "name": "Samson" , "address":
{ "city" : "ShangHai" , "street" : "YiJiang Road", "postcode": 202014 }
}
如果,数据是一个数组,可以利用[ ]表示,如:
{"anthor" : "Addis" , "age" : "23", "books":[ {"name":"C++"} ,{ "name" ; "JAVA"}, {"name": "Flash ActionScript3.0"} ] }
这里 ,books表示一个数组,其具有三个值,分别是C++,JAVA和Flash ActionScript3.0