教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

基于JSON的Ajax实践

来源:网络收集 时间:2026-09-20
导读: json,java,script 基于JSON的AJAX实践 一 JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999

json,java,script

基于JSON的AJAX实践

一 JSON简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

1. JSON建构于两种结构

z “名称/值”对的集合

不同的语言中,它被理解为对象,记录,结构,字典,哈希表,有键列表,或者关联

数组。

z 值的有序列表

在大部分语言中,它被理解为数组。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

2. JSON具有以下这些形式

2.1 对象

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”;“‘名称

/值’ 对”之间使用“,”分隔。

object

{}

{ members }

members

pair

pair , members

pair string : value

2.2 数组

数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。

array

[]

[ elements ]

elements

value

json,java,script

value ,

elements

2.3 值

值可以是双引号括起来的字符串、数值、true

、false、 null、对象或者数组。这些结构可以嵌套。

value

string

number

object

array

true

false

null

2.4 字符串

字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符即一个单独的字符串。字符串与C或者Java的字符串非常相似。

string

""

" chars "

chars

char

char chars

char

any-Unicode-character-

except-"-or-\-or-

control-character

\"

json,java,script

\\

\/

\b

\f

\n

\r

\t

\u four-hex-digits

2.5 数值

数值也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

number

int

int frac

int exp

int frac exp

int

digit

digit1-9 digits

- digit

- digit1-9 digits

frac

. digits

exp

e digits

digits

json,java,script

digit

digit digits

e

e

e+

e-

E

E+

E-

空白可以加入到任何符号之间。

二 JSON剖析

对于JSON,首先要明白它和XML一样也是一种简单文本格式。相对于XML,它更加易读、

更便于肉眼检查。在语法的层面上,JSON与其它格式的区别是在于分隔数据的字符,JSON中的分隔符限于单引号、小括号、中括号、大括号、冒号和逗号。下面是一个JSON对象:

{

"note": {

"title": "思达超市",

"descripation": "思达超市北京路51分店",

"coordinate": { "x": 32.00,

"y": 112.00

}

"phoneNumbers": [

"86 371-68201234",

"86 371-68291234"

]

}

}

将上面的JSON对象用XML改写,如下:

<note>

<title>思达超市</title>

<descripation>思达超市北京路51分店</descripation>

<coordinate>

<x>32.00</x>

json,java,script

<y>112.00</y>

</coordinate>

<phoneNumbers>

<phone>86 371-68201234</phone>

<phone>86 371-68291234</phone>

</phoneNumbers>

</note>

是不是很相似?但它们并不相同。下面将详细阐述采用JSON句法的优点和不足。

1. JSON优点

乍看上去,使用JSON的数据分隔符的优点可能并不那么明显,但存在一个根本性的缘由:它

们简化了数据访问。使用这些数据分隔符时,JavaScript引擎对数据结构(如字符串、数组、对

象)的内部表示恰好与这些符号相同。

这将开创一条比DOM技术更为便捷的数据访问途径。下面列举几个JavaScript代码片段来说明

这一过程,这些代码片段会访问先前的JSON代码片段中的信息:

z 访问JSON中的标题:note.title

z 访问JSON中的经度:note. coordinate.x

z 访问JSON中的电话号码第一位:note.phoneNumbers[0]

如果您具备DOM编程经验,就能很快地看出区别;新手可以参看Document Object Model相关

资源。

JSON的另一个优点是它的非冗长性。在XML中,打开和关闭标记是必需的,这样才能满足标

记的依从性;而在JSON中,所有这些要求只需通过一个简单的括号即可满足。在包含有数以

百计字段的数据交换中,传统的XML标记将会延长数据交换时间。目前还没有正式的研究表

明JSON比XML有更高的线上传输效率;人们只是通过简单的字节数比较发现,对于等效的

JSON和XML有效负载,前者总是小于后者。至于它们之间的差距有多大,特别是在新的XML

压缩格式下它们的差距有多大,有待进一步的研究。

此外,JSON受到了擅长不同编程语言开发人员的青睐。这是因为无论在C、C++、Delphi、Perl、

Python,还是PHP、C#、Java甚至在pl/sql中,开发都可以方便地生成JSON。

2. JSON不足

和许多好东西都具有两面性一样,JSON的非冗长性也不例外,为此JSON丢失了XML具有的

一些特性。命名空间允许不同上下文中的相同信息段彼此混合.然而,显然在JSON中已经找不

到了命名空间。JSON与XML的另一个差别是属性的差异,由于JSON采用冒号赋值,这将导

致当XML转化为JSON时,在标识符(XML CDATA)与实际属性值之间很难区分谁应该被当

作文本考虑。

另外,JSON片段的创建和验证过程比一般的XML稍显复杂。从这一点来看,XML在开发工

具方面领先于JSON。

三 JSON应用

接下来实现一个JSON的AJAX应用。

首先编写一个Servlet,以下是com.xinyuan.json.JsonServlet.java:

json,java,script

public class JsonServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws IOExc …… 此处隐藏:9541字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于JSON的Ajax实践.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1441596.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)