JSON数据

2024-10-21

JSON数据(精选9篇)

JSON数据 篇1

当前发展最快的Ajax已成为Java Web开发中使用的热门技术[1]。 在服务器与浏览器之间采用Ajax, 能够减少服务器的响应时间, 提高用户体验[2]。 XML数据传输 格式不适 合基于Ajax的应用程 序 , 严重阻碍 了数据传 输效率[3,4]。 通过比较XML与JSON, 提出了在基于Ajax技术开发的应用程序中利用JQuery来解析JSON格式数据以提高程序开发效率和数据传输效率。

1 Ajax 工作原理

Ajax ( Asynchronous Java Script And XML) , 即异步Java Script和XML技术 , 是一种创建交互式网页应用的网页开发技术, 其优点在于只需与服务器进行少量数据交换便可异步更新网页局 部 。 其工作原 理主要是 通过XMLHTTPRequest对象向服 务器发送 异步请求 , 返回服务 器响应 , 利用Java Script操纵DOM对象来达到异步更新网页局部的目的[5]。

2 JQuery 库

JQuery是轻量级的JS库 , 兼容当前流行的各种浏览器和CSS3; 能够剥离静态页面与其内容 ; 为网站提供异步交互技术; 能够方便地处理HTML、 事件和实现动画; 提供较多的成熟插件。

3 XML 与 JSON 数据格式

在基于Ajax开发的Java Web应用程序中, 通常采用XML和纯文本作为数据交换格式, 将引入轻量级的JSON作为Ajax数据传输的另外一种格式选择。

3.1 XML 与 JSON 简介

XML (Extensible Markup Language), 即可扩展标记语言 ,

用于标记电子文件使其具有结构性, 可以用来标记数据和定义数据类型, 有助于在服务器之间进行结构化数据的传输[6]。

JSON (Java Script Object Notation) 是一种轻量级的数据交换格式, Java Script支持的标准, 因采用完全独立于语言的文本格式可直接在Java Script中操作数组和对象[7]。

JSON采用键值对的集合来表示数据 。 它以 “{” 开始 , 以“}” 结束 , 每一个 “键 ” 与 “值 ” 之间用冒号分隔 , 键值对之间用逗号分隔。 基本格式如下:

JSON数据也可以直接表示为数组的形式 , 格式如下 :

3.2 XML 与 JSON

通过对比表1中两种数据格式的城市信息代码来突出两者之间的区别。

3.2.1存储空间

从表1中得出XML因包含特定的首部信息、 开始和结束标签, 冗余和繁 琐 ; JSON因使用键 值对来表 示每个成 员信息, 简洁易懂。 因此, 在传输相同量的数据下, XML格式数据需要170 Byte存储空间, 而相应的JSON格式数据却只需84Byte, 最大限度地减少了Ajax通信的数据量 , 利于提高服务器响应速度。

3.2.2解析方案

通常在Web应用中, 利用Java Script解析XML需要复杂的代码而导致极低的开发效率。 Java Script通常会把Web表单中的数 据用对象 表示并放 进请求 , 之后再将 数据取出 放入JSON或者XML中 , 此时应直 接使用JSON数据格式 , 因为JSON能够允许将Java Script的对象直接转换为随请求发送的数据。

3.2.3 易用性

使用DOM对XML进行解析有些复杂, 不易理解, 编程也较复杂。 JSON是一种轻量级的数据传输格式, 结构明了,内容简洁, 易于解析和生成且不需学习新的API。 在Web应用中, 客户端使用Java Script、 服务器端使用Java及数据传输格式选择JSON会使解析代码简洁、 通用性好且能提高应用程序的开发效率。

3.2.4 传输效率

为了比较JSON和XML在基于Ajax开发的应用系统中的传输效率, 测试处理不同格式的相同数据量所耗时间。

以下为解析XML中数据所耗时间的代码:

以下为解析JSON中数据所耗时间的代码:

为了方便观察, 实验中设置解析的成员个数的初始值为100, 成员数每递增100个记录一次解析所耗时间 , 所耗时间如表2所示。

结合表1和表2分析可得, 在数据量较大的情况下, 解析JSON格式数据所需时间远小于解析XML格式所需时 间 ,加快了网页的响应速度, 提高了传输效率; XML语法复杂,占用较多的系统资源, 数据冗余, 不易解析, 影响了XML的传输效率。

4 JQuery 解析 JSON 举例

以如下JSON代码为例。

对于服务器返回的JSON字符串, 如果JQuery异步请求没做类型说明, 或者以字符串方式接受, 那么需要利用eval() 函数将该 字符串做 一次对象 化处理 ; 若JQuery异步请求 将data Type设为 “json” 或利用$.get JSON() 方法 , 则无需调用eval() 方法 。 以设置服务器数据返回类 型 (data Type) 为JSON举例说明数据的处理方法:

结合网页展现JQuery解析JSON格式数据的效果, 通过下拉框选取城市名称, 在文本域中显示城市的相关描述信息。 其完整代码如下所示:

城市列表:

城市信息:

页面JSON解析结果如图1所示:

5 结语

通过对比XML和JSON以及实例 验证 , 得出JSON比XML更适合作为基于Ajax技术开发的应用程序的数据传输格式, 降低了解析带来的复杂性和兼容性问题, 提高了解析的速度, 使得采用JQuery技术与JSON数据传输格式在Ajax应用系统中的优势更加明显, 增强了Web系统开发的简易性、灵活性和高效性。

摘要:通过将XML和JSON在存储空间、解析方案、易用性和传输效率4个方面进行比较,提出了一种基于Ajax利用JQuery来解析JSON的技术方案,用于提高Web应用系统的开发效率和数据传输效率,实例验证了这套技术方案的可行性和正确性,证实这套技术方案提高了数据的传输效率,降低了客户端的响应时间,使Web应用系统的开发更加容易高效。

关键词:Ajax技术,XML语言,JSON格式,JQuery技术,传输效率,传输格式

JSON数据 篇2

客户端和服务器需要数据交换,只有客户端和服务器都能识别的格式才能做数据交换。可以做数据交换格式的类型有:

1、基本数据类型:数字、字符串

2、XML格式

3、JSON格式

JSON(javascript object notation),是一个轻量级的数据交换格式,比XML生成和处理更加方便。JSON有取代XML的趋势 语法:{键:值,键:值,…} Javascritp操作JSON数据

PHP生成JSON数据

1、json_encode():将PHP数据转成json格式

2、json_decode():将JSON格式转成PHP数据格式

将索引数组转成JSON格式、并逆转换

索引数组转成JSON格式还是数组的格式,逆转换用数组的位置做下标

将关联数组转成JSON格式并逆转换

关联数组转成JSON格式还是字面量对象的格式,逆转换用数组的键做下标

既有关联数组,也有索引数组

只要有一个元素是关联数组的形式,就转换成键值对的形式(字面量对象),没有键的元素用元素的位置做键。

二维数组转换成JSON格式

转换对象

JS访问PHP的JSON数据接口

PHP页面

JSON数据 篇3

传统的Web采用HTML作为数据传输和呈现的载体。当Web数据通信量较大时,这种方式需要同步等待服务器的响应,客户端整体刷新且数据传输延迟较大,白页、等待时间过长等现象突出[1,2],用户体验极为不佳。针对这些问题,实现Web异步通信和局部更新的Ajax异步Java Script和XML技术应运而生。其实质是实现服务器与客户端间简洁的异步数据传输,把服务器实现的表示层功能转移至客户端完成。它的关键之处在于: 使用标准的XHTML和CSS基于DOM构建和动态更新网页,采用XML和XSLT为载体实现数据交互,利用XMLHttpRequest实现数据 异步收发,通过Java Script绑定和处 理所用数据[3]。

虽然,Ajax的异步通信和局部更新在一定程度上消除了因同步等待和整体刷新导致数据延时较大的问题,但是,由于XML是一种显示数据的标记语言,其中含有大量的用于标识数据显示格式的冗余标签,且在客户端解析和显示时要依于结构复杂的DOM,不能使用Java Script直接解析,因此,在大规模数据交互环境下以XML为载体的Ajax数据通信量还是较大,占用的系统资源较多,数据通信效率仍然较低。

JSON是一种不考虑数据显示的轻量级纯文本数据交换格式,基于JavaS cript的一个子集实现,能被Java Script直接解析。将JSON作为Ajax通信数据的载体能有效克服XML中存在的数据冗余和解析困难问题。本文分析了服务器端应答Ajax引擎请求数据的结构,设计了有限状态机模型实现应答数据转换为JSON格式的方法,提出和实现了一种基于JSON的Ajax数据通信快速算法,提高了Ajax数据传输和解析的效率。

1 相关工作

近年来,研究者们主要围绕Ajax的客户端编程模式、数据交换格式、数据压缩、客户端解析效率等方面对其性能优化进行了广泛的研究,取得了一定的成果。文献[4]比较了Ajax分别以XML和JSON为数据负载时的响应数据量、客户端解析效率及安全性,提出了Ajax以XML和JSON为数据载体时的应用场合; 文献[5]着重从HTML、XML、JSON三种数据传输格式的对象解析入手,分析了在不同环境下使用不同数据传输格式对Ajax应用实时性响应的影响,提出JSON在不增加冗余的同时解析也比前两者容易; 文献[2]基于传统Web应用模型的通信缺陷并结合Ajax工作原理,提出基于HTTP数据压缩和缓存的方法提高网络响应速度和Ajax框架性能。

这些研究成果表明基于JSON的Ajax数据通信量、传输速度、解析效率都要高于同等条件下以XML和HTTP为载体的Web通信。因此,将不同的Ajax数据负载转换为JSON格式是优化Ajax数据响应性能的一种有效方法。文献[6]提出了在Web服务器的业务逻辑层实现以XML为载体的Ajax的数据转为JSON格式的方法,有效地提高了系统的传输效率; 文献[7]通过分析JSON文法并建立对象导航图,提出了一种透明地将Java对象序列化为JSON表达式的算法,利用Java Script引擎解析JSON响应,有效解决了解析XML所造成的缺陷。

通过对以上研究的分析,可以看出目前对Ajax数据通信性能优化的方法主要集中在不同场合选择不同数据负载形式的策略上。虽然在基于JSON一定能提高Ajax数据通信效率上达成了共识,但还没有研究对服务器如何直接以JSON格式为载体响应Ajax引擎请求数据的实现方法进行探讨,一般都是研究以JSON作为一种中间转换格式进行数据传输。这种方式无疑多了一个中间转换的环节,浪费了系统资源,延时了数据响应时间,降低了用户的体验度。

因此,研究服务器端应答Ajax引擎请求数据的结构及有效的实现应答数据转换为JSON格式的方法以提高Ajax数据传输和解析的效率具有重要的意义。

2 基于 JSON 的 Ajax 数据通信快速算法

本文算法的基本思想是以JSON格式为参照,分析服务器应答Ajax引擎请求数据的结构,设计应答数据JSON序列化的有限状态机模型,基于此模型实现应答数据向JSON格式的转换,从而降低Ajax的通信数据量,减少客户端因Java Script不能直接解析XML所占用的系统资源和无用解析计算,大大提高Ajax的数据传输效率和响应速度,使客户端拥有良好的用户体验度。

2. 1 JSON 文法

JSON是一种轻量级独立于编程语言的文本型数据传输格式。它采用Java Script的子集Standard ECMA-262第3版实现,能被所有的浏览器支持,不依赖第三方工具直接使用Java Script解析,易于人们阅读和编写,也便于机器解析[8]。JSON建构于两种结构[9]:

( 1) 对象: 一个无序的“名称/值”对的集合。每个对象以“{ ”、“} ”作为始、终标志,“名称”和“值”分别用‘“”’括住,两者间用“: ”间隔,不同的“名称/值”对间用“,”分隔,如图1所示。

如定义一个学 生对象: var student ={ “sno”: “98998”,“name”: “Jack”,“sex”: “Man”} ,表明该对象包括三个元素sno、name和sex,其值分别是98998、Jack和Man。

( 2) 数组: 是值的有序列表。每个数组以“[”、“]”作为始、终标志,值间用“,”分隔,如图2所示。

如定义一个 颜色数组: var color = [‘red’,‘yellow’,‘green’,‘blue’,‘purple’],表明该数组有5个元素‘red’,‘yellow’,‘green’,‘blue’,‘purple’。

从JSON的文法不难看出,JSON中的标签完全用于描述数据,不负责引导客户端浏览器显示的是格式化功能,是能实现服务器与客户端之间更简洁数据传递的主要原因。因此,JSON广泛用于Web客户端表现层数据描述和交换的载体。

2. 2服务器端应答数据结构分析及其 JSON 序列化方法

由于XML是Ajax的标准数据交换格式,已有的基于Ajax的Web应用在服务器端将作为应答的数据对象直接使用XML绑定、传输,如JAXB( Java Architecture for XML Binding) 。如果需要使用JSON作为数据交换格式时,再通过JSON编程接口将这些数据对象转换成JSON格式,如图3中带箭头实线所示。

由图3可以看出,标准的Ajax基于XML数据传输是一种间接的方式,中间存在大量的数据格式化过程,占用服务器的资源和运算时间较多,降低了整个Ajax系统的数据响应效率。本文的主要工作正是要变间接为直接,将应答数据一步转换为JSON负载。为了实现这个目标,就必须分析应答数据的结构,找出其与JSON数据文法间的映射规律。

目前,Web应用主要基于B/S结构,Web服务器的应答数据来源于数据库服务器的查询结果,这些结果以二维表格的形式存储,称之为记录集,实质是数据库服务器上被选中表里数据的一个镜像,如图4所示。也就是说,Web服务器应答的数据结构是一种复合表,一条记录对应一个数据对象,每个数据对象由若干个属性( 字段) 组成。

通过比较可知,Web服务器中应答的记录集与JSON文法规定的数据格式间基本上是直接的映射关系:

( 1) 记录集中的每条记录对应于一个数据对象,恰好与JSON文法中的数组对应,可以实现直接映射;

( 2) 记录集中存储数据对象属性的字段在转换成“名称/值”对时,鉴于对象的属性可能较多,对象名仍然采用属性名,然后将其映射为JSON格式;

( 3) 记录集中存储数据名称和值的字段与JSON文法中的对象的“名称/值”对应,将对象名 用“名-value”替代后直 接映射;

( 4) 记录集中有些外键字段不能直接映射为JSON中的“名称/值”对,它们在记录集中主要起关联数据对象作用。此时,应该将这些关联字段进行“原子化”处理,将其映射为直接数据对象,再将这些直接数据对象按( 1) 、( 2) 、( 3) 中的方法映射为数组和原子的“名称/值”对对象,并将其作为关联字段所在数据对象的子对象。

弄清Web服务器应答Ajax引擎的数据结构及其与JSON文法中定义的数据格式间的映射关系后,设计出应答数据与JSON数据格式间转换的有限状态机模型为M( rj) = ( R,I,S,F,O,J) ,如图5所示。

其中,R为应答数据记录集,S为中间结点集,r和j为状态,F为状态映射函数F: R×S→J,J为JSON数据元素集,I和O分别为输入、输出集合各中间节点及映射函数触发事件如下所示:

例如,Web服务器中有如表1所示的应答Ajax引擎的数据记录集R,描述的是客户端一个浏览图片框动态显示的前、后及自身的图片ID( 图片的编号) 、SRC( 图片路径值) 、H( 图片长度) 、W( 图片的宽度属性) 、PRE( 前一张图片的编号) 、NEXT( 后一张图片的编号) 信息。其中,PRE和NEXT字段为关联字段。

通过有限状态机模型转换后得到序列化的输出JSON数据元素集O为:

得到上述JSON数据元素集后,Web服务器就可将其序列化为纯文本的数据流,并将其赋值一个文本型的Java Script变量( jstd) 进行传输。

var jstd = O;

2. 3 客户端 JSON 反序列化实现

客户端反序列化就是将用于传输的流式文本型数据( jstd)转换为JSON对象以便Java Script解析,这个工作可直接使用Java Script的eval方法实现,无需借助第三方工具及结构。

这几条简单的脚本把接收的数据装载到HTML中: < imgname = " ID" src = " SRC" height = " 500" width = " 600" / > ,便可在客户端格式化显示请求的数据。

3 实验设计及结果分析

为了验证本文提出算法的正确性和传输速度快、解析效率高的特点,实验数据集采用Ramon Lawrence基于Java的DBstats程序通过JDBC连接Microsoft Access的Northwind库、UCI KDD、ML库及Internet上的一些公用数据库得到的样例数据[10],如表2所示。

其中,未用比例表示空属性值占所在模式的比例,使用比例表示非空数据值占模式的比例,前者平均约为7. 4% ,后者平均约为44. 8% ,能较好地分析数据传输开销和解析效率。

基于以上数据集,在相同网络环境下和相同应答数据量的条件下从生成数据负载时间、传输时间和客户端解析数据所用时间三个方面对比Ajax分别基于JSON和XML时数据交互的性能,应答数据集转换成JSON或XML数据负载时间、JSON或XML数据传输时间及客户端解析时间随数据元素个数变化的情况如图6、图7、图8所示。

从图6可以看出,本文算法的序列化时间远少于XML序列化的时间。相同数据元素个数的条件下,本文算法平均要快5个/ms。其主要原因是序列化JSON时直接利用JSON对象的字符串型变量直接写入Java Script,而XML要先生成一个DOM对象再用I/O流写入专门的XML文件,验证了JSON在性能上优于XML的事实。

从图7中可看出,在传输相同数据量的条件下,本文算法的数据传输时间明显要少于基于XML的数据负载,平均约快13. 85个 / ms。其主要原因是本文算法基于的JSON只负载携带数据,而XML除携带数据外还要携带数据在客户端显示的标签,存在大量冗余标记,因此,将同一个元素序列化成XML后的数据量要大于JSON,传输速度当然也要慢些。

图8说明本文算法在客户端的速度要明显快于XML,且随着数据的不断增大,优势越来越明显。其原因是因为本文算法基于的JSON负载是基于Java Script的子集,直接使用浏览器的Java Script解析,而XML要借助于DOM才能被浏览器解析,而且数据量越大,DOM的结构越负载,解析速度就越慢。

综上所述,实验结果表明本文算法无论是在数据传输方面,还是在Web服务器序列化和客户端反序列化方面效率都明显高于基于XML的数据传输,更要高于先序列化为XML再转化为JSON的间接方式,是一种实现Ajax异步数据交互的快速算法。

4 结 语

本文设计了一个Web服务器应答Ajax引擎数据的JSON序列化有限状态机模型,提出了一种基于JSON的Ajax数据通信快速算法,较好地解决了Web服务器应答数据集直接序列化为JSON的问题,提高了数据通信和解析的效率,具有较好的响应比,带来了较好的用户体验度。如果在本文的基础上考虑对传输过程中的JSON数据负载进行压缩传输,可能使通信速度更快,这将是本文算法的主要后续工作。

摘要:针对Ajax采用XML作为数据载体存在标签大量冗余、基于DOM解析复杂导致数据传输量大、服务器与客户端解析效率低的问题,提出一种基于JSON的Ajax数据通信快速算法。分析服务器端应答Ajax引擎请求数据的结构,设计有限状态机模型实现应答数据集转换为JSON格式的方法,提高了Ajax数据传输和解析的效率。实验结果表明,该算法较以XML为数据载体的通信速度更快,解析效率更高,具有更好的用户体验度。

关键词:JSON,Ajax数据通信,有限状态机,快速算法

参考文献

[1]芮石磊,赵维娟.古陶瓷样本数据管理系统研究及AJAX技术应用[J].计算机应用与软件,2013,30(2):26-28.

[2]肖斌,汪敏.基于Ajax通信的数据传输优化[J].通信技术,2011,44(3):74-76.

[3]仰燕兰,金晓雪,叶桦.ASP.NET AJAX框架研究及其在Web开发中的应用[J].计算机应用与软件,2011,28(6):195-198.

[4]谭力,杨宗源,谢瑾奎.Ajax技术的数据响应优化[J].计算机工程,2010,36(7):52-54.

[5]王鹏,吴晓东,杨华民.基于不同数据传输格式对Ajax实时性响应影响的研究[J].长春理工大学学报:自然科学版,2011,34(2):146-149.

[6]陈玮,贾宗璞.利用JSON降低XML数据冗余的研究[J].计算机应用与软件,2012,29(9):188-190.

[7]张涛,黄强,毛磊雅,等.一个基于JSON的对象序列化算法[J].计算机工程与应用,2007,43(15):98-100.

[8]郑悦,杨勇.SDO2JSON:一种业务数据模型到表现层模型的转换方法[J].计算机应用与软件,2012,29(3):13-15.

[9]高静,段会川.JSON数据传输效率研究[J].计算机工程与设计,2011,32(7):2267-2270.

JSON数据 篇4

JSON是一种轻量级的数据交换格式,各种语言都有良好的支持,字典是Python的一种数据结构。可以看成关联数组。

有些时候我们需要设计到字典转换成JSON序列化到文件,或者从文件中读取JSON。简单备忘一下。

Dict转JSON写入文件

代码如下:

#!/usr/bin/env python

# coding=utf-8

import json

d = {‘first‘: ‘One‘, ‘second‘:2}

json.dump(d, open(‘/tmp/result.txt‘, ‘w‘))

写入结果

代码如下:

cat /tmp/result.txt

{“second”: 2, “first”: “One”}

读取JSON

代码如下:

#!/usr/bin/env python

# coding=utf-8

import json

d = json.load(open(‘/tmp/result.txt‘,‘r‘))

print d, type(d)

运行结果

代码如下:

{u‘second‘: 2, u‘first‘: u‘One‘}

JSON数据 篇5

JSON有对象式结构和数组式结构两种, 对象式结构为{"key1":value1, "key2":value2, …}的键值对结构, key1为对象的属性, value1为key1的属性值, 通过“对象名.key1”来读写属性值, 这个属性值的类型可以是数字、字符串、数组、对象等。数组式结构为[{"key1":value11, …}, {"key1":value21, …}, …], 通过“数组名[序号].key1”来读写属性值。对象式结构和数组式结构可以组合成复杂的数据结构。

一、浏览器端JSON格式数据处理

在浏览器端可以完成JSON对象与JSON字符串格式之间的相互转化, 并且有多种处理方法, 既可以使用Java Script默认的处理函数, 也可以使用第三方处理包。

1、通过内置JSON对象来处理JSON格式数据

在Firefox、IE8等浏览器中支持内置的JSON对象, 可以利用JSON对象来处理JSON格式数据。例如:

但是IE8的内置JSON对象对中文支持不好, 将JSON对象转换为JSON字符串时, 中文字符被转换成对应的U-nicode码, 例如“男”被显示为“u7537”。

2、通过j Query的函数来处理JSON格式数据

j Query是小巧、快速、功能强大的Java Script库, 它也有JSON格式处理函数, 可以将JSON字符串转换为JSON对象。例如:

3、通过Java Script的eval函数来处理JSON格式数据

eval是Java Script的块处理函数, 通常用于动态执行一段代码, 也可用于将JSON字符串转换为JSON对象。例如:

之所以给jsonstr1加上“ () ”, 是为了防止eval函数忽略jsonstr1中的“{}”。

4、通过json2.js包来处理JSON格式数据

json2.js包是Java Script语言包, 实现了JSON对象的编码函数与解码函数, 即parse () 和stringify () , 例如:

5、利用数组函数来处理JSON格式数组

常见的数组操作包括添加和删除等, 在Java Script中数组函数同样适用于JSON数组的操作, 如表1所示。

例如:

二、服务器端JSON格式数据处理

Java的JDK中本身不包含处理JSON格式数据的包, 好在有一些第三方提供的处理包可供使用, org.json.jar就是典型代表, 该包使用简单、功能强, 而且不需要其它包的支持, 使用方法如表2所示。

例如:

三、浏览器与服务器之间JSON格式数据收发

1、浏览器端发送和接收JSON格式数据

在浏览器端通常采用Ajax发送和接收JSON格式数据, j Query提供了丰富的Ajax函数用于发送Ajax请求, 如表3所示。

例如:

2、服务器端接收和发送JSON格式数据

以JSP为例说明服务器收发JSON格式数据的过程, 服务器以读取参数的形式从浏览器发送的Ajax请求中接收JSON对象数据, 数据处理完毕后, 以JSON字符串的方式发送给浏览器, 例如。

四、应用小结

JSON数据格式具有简便、易于阅读和计算机处理等优点, 受到了广泛应用, 也出现了不少的方法和工具, 在实际使用中我们要特别注意浏览器的适应性和汉字字符处理的问题。只有Firefox、IE8以上的浏览器才支持内置的JSON对象, 并且IE8内置的JSON对象对中文支持不好;使用j Query或json2.js包来处理JSON字符串时, 字符串必须严格遵守JSON格式要求, 属性名必须使用双引号;j Query提供了多种Ajax请求方法, j Query.get JSON方法使用中如果要处理中文就要特别注意, 要先在浏览器端使用encode URI函数将中文字符转换为utf-8编码, 然后在服务器端使用decoder.decode URL方法再将其转换为GB2312或GBK编码的中文字符。

参考文献

[1]http://www.json.org/[EB/OL].

[2]http://www.json.org/java/index.html[EB/OL].

[3]https://github.com/douglascrockford/JSON-js[EB/OL].

[4]http://jquery.com/[EB/OL].

JSON数据 篇6

互联网时代大量的数据信息存储于异构数据源中,如何实现对异构数据的查询,使信息发挥更大的作用是当前研究的热点问题。这方面的研究早期普遍采用基于CORBA的对象模式[1,2],但CORBA缺乏参考性的实现,且调试繁琐。近年来,比较常见的信息集成方法有:联邦数据库、数据仓库和Wrapper-Mediator体系结构[3],但这些方法无法实时变化、不适合频繁查询、资源容易冲突且稳定性相对较差。而本世纪初主要集中在以XML(Extensible Markup Language)为基础的模型,XML作为一种信息的高层封装与传输标准,在异构数据的集成中得到了广泛的应用[4],但与当前流行的JSON(JavaScript Object Notation)相比,XML在格式上就显得很繁琐了。

JSON作为一种轻量级的数据交换格式,为信息集成问题提供了新的解决方法。目前基于JSON的各类应用已成为国内外研究的热点[5]。然而,基于JSON的异构数据查询在应用上还处于不成熟阶段,还有许多问题需要进一步研究。

1 异构数据集成策略

随着分布式应用的发展和普及,多数据源集成及数据访问的透明性问题已越来越受到关注。在JSON技术的基础上,提出异构数据的集成方案。通过异构平台将各个数据源的数据合并,避免了用户要通过特别的接口去操作数据,及对相关数据源的寻找[6]。

1.1 数据集成的整体方案

方案的开发主要实现了用户对异构数据库中数据的提取。把JSON作为该平台的数据描述工具和转换工具。这样用户在进行查询时就可以对不同的数据源做统一的处理。

数据集成的整体方案如图1所示,平台主要由3部分组成:应用层、中间件层和数据层。应用层即用户界面层,包含一些系统和构件,将用户发出的查询指令发送至中间件层,并接收返回的查询结果。应用层可根据用户使用环境和具体的应用采用恰当的信息访问技术或应用软件。

中间件层通过转换技术将各个数据格式转换为JSON数据模型,并将数据存储在JSON数据库中,以维持与各异构数据源之间的映射关系。对用户来说,对异构数据的查询分解与整合是透明的。数据源层位于最底层,是数据的提供者。这一层中包括传统数据库信息、文件信息以及多媒体信息等各类数据类型。

经过数据集成后返回应用层的信息都是以JSON格式表示的,其中数据的集成技术如下所述。

1.2 数据的集成策略

数据集成方案中最关键的技术就是数据转换,中间件提供应用层访问数据源的统一接口,完成从实际数据源到用户数据视图的转换,并在中间充当数据总线的功能。下面分别介绍3种主要数据类型转换为JSON格式的方法。

1.2.1 结构化数据到JSON格式

结构化数据以关系数据库最为典型,其具有规范的模式结构,所以将结构化数据转换为JSON格式较为方便。算法1:Relational to JSON _transformation();

输入:给定一张关系数据表;

输出:该表对应的JSON数据格式;

1.Initial_JSONdocument();

2.for i=1 to关系数据表的记录数{

3.add该记录的起始toJSON文档;

4.for j=1 to关系数据表的元组数

5.add第i条记录的属性值toJSON文档;

6.add该记录的结尾toJSON文档;

7.}

1.2.2 半结构化数据到JSON格式

半结构化数据以XML数据最为典型,其有严格的标记依从性,根据每个标记的打开和关闭将其转换为JSON数据格式。算法2:XML to JSON _transformation();

输入:给定XML;

输出:该表对应的JSON数据格式;

1.Initial_JSONdocument();

2.for i=1 to记录XML tag数/2{

3.add该记录的起始tagName toJSON文档;

4.add第i条记录的属性值toJSON文档;

5.add该记录的结尾toJSON文档;

6.}

1.2.3 无结构化数据到JSON格式

无结构化数据主要是指文本字符,其数据没有规范的存储格式,是基于字符流的存储。一般一个文本都会有题目、创建者、创建时间和正文这4个部分,在转换为JSON格式时对这4个部分进行提取。算法3:Text to JSON_transformation();

输入:① 给定text;

② Item[i].value分别表示“标题”、“创建者”、“创建时间”、“正文”;

输出:对应的JSON数据格式;

1.Initial_JSONdocument();

2.for i=1 to 4{

3.Search Item[i].value in the text;

4.add该Item[i]的起始toJSON文档;

5.add第i条记录的属性值toJSON文档;

6.add该Item[i]的结尾toJSON文档;

7.}

这里将结构化数据、半结构化数据和无结构化数据都转换为JSON的格式,最后通过应用层对各类数据进行统一的查询。

2 基于JSON的查询方法

JSON规范的标签形式非常易于阅读和编写,内嵌对象的方式避免了命名空间的冲突,而且在解析时不需要考虑子节点和父节点的问题,所以JavaScript解析JSON的速度要远远快于XML,其解析难度几乎为0。下面给出具体的查询方法。

2.1 JSON数据的预处理

首先给出1个json的例子:

考虑将JSON数据以Tree的形式存储,称其为JSONtree[7]。上面的例子以JSONtree的形式表述如图2所示。

用户在应用层发出查询请求后,即对数据库中的JSONtree进行查询。查询请求通常分为2种:路径查询和关键字查询。定义如下:

路径查询:在JSONtree中,经一层层的key-value-key得到路径,各个key之间用“.”隔开。

关键字查询:在JSONtree中,按照给出的key进行查询。下面给出2种查询方式的具体算法。

2.2 JSON数据的路径查询算法

路径查询属于确切查询,是按既定的路径在JSONtree中一层层地进行筛选;如计算机中用户在磁盘上寻找文件时那样,所以结果只有一个或未查询到,因此给出路径查询算法。

2.3 JSON数据的关键字查询算法

在JSONtree中,由于不同级别上可能有相同变量名的key,所以会存在多个符合查询条件的结果。有时需要对这些结果进行必要的选择,以符合用户所需,所以给出关键字查询算法。

3 实验

实验是在模拟数据和真实数据这2类数据集上进行的。数据量为100 K到10 M之间。其中测试真实数据集采用kindle的图书统计数据(http://ikandou.com/book/)获取。

3.1 实验环境

实验是在Windows 7 Ultimate 32-bit平台,处理器AMD AthlonTM64 × 2,主频2.1 G和内存2 G的配置上进行,采用java实现,实验主要关注基于JSON算法的查询性能表现:① 数据集的大小n对算法性能的影响;② 查询命中率的比较。

3.2 实验性能测评

实验性能测评主要对基于JSON的异构查询与基于XML的异构查询进行比较,使用模拟数据集从数据大小n和查询时间t这2个方面进行比较,从而得出实验结果。然后再在真实数据集上进行查询命中率的比较。

3.2.1 数据大小n的影响

实验考察数据大小对算法性能的影响。如图3所示,基于JSON算法随着数据的增大对异构数据查询的影响,其中得到的查询时间显示在纵坐标上。从图中可以观察到基于JSON算法的异构数据查询时间快,表现优。尤其是当大小超度5 000 kb时,使用JSON的查询算法体现出好的优势。这是由于JSON数据的格式避免了许多父子节点之间的关系,这样大大节省了更新的时间。

3.2.2 查询命中率的比较

实验考察在真实数据集上将各数据转为JSON格式后查询的命中率,如图4所示。

随着数据集的增大,查询的命中率会有所降低。在允许的误差范围内,命中率仍然是较好的,且转为基于JSON算法的命中率要比转为基于XM算法的命中率要高。

3.3 实验结果

从上述查询时间和命中率2个方面的实验可以看出,随着数据量n的增大,基于JSON的异构数据查询时间会缓慢增长,命中率会稍有降低。同时从图中可以看出,在相同条件下与基于XML的异构查询相比,提出的算法有更明显的优势。

4 结束语

提出的方法很好地解决了数据统一查询的问题,实现了异构数据的集成、共享及利用,提高了信息系统的整体效能。通过将结构化数据、半结构化数据和无结构化数据都转换成具有较好跨平台性的JSON数据,从而使得对各类数据的查询问题都转换成对JSON的查询,具有较好的理论及实践上的意义。

然而还有进一步需要提高的地方,针对JSON数据的查询还需要进一步的优化,这也正是后续工作的内容。

参考文献

[1]SHETH A,LARSON J.Federated Database Systems forManaging Distributed,Heterogeneous,and AutonomousDatabases[J].ACM Trans.Database System,1990,22(3):21-27.

[2]陈跃国,王京春.数据集成综述[J].计算机科学,2004,31(5):48-51.

[3]XU Xiang-zhong et al.Knowledge-based intelligentquery processing system[C]∥ICYCS’2001,2001-10:1048-1051.

[4]RAO,FENG Bo-qin.XML-based KnowledgeRepresentation Ontology[J].Microelectronics andComputer,2004,21(9):26-291.

[5]PENG Dun-lu,CAO Li-dong,XU Wen-jie.Using JSONfor Data Exchanging in Web Service Applications[J].Journal of Computational Information Systems,2011,16(7):5883-5890.

[6]SUN Baojun,Comparison and Research of JSON andXML[J].Inner Mongolia Science Technology&Economy,2009(12):122-126.

JSON数据 篇7

关键词:缩进报表,JSON,容器树,文本结构,原样呈现

0 引言

现实工作中, 大多数企事业单位在它的多个应用程序和数据库中都具有数据, 并且这些数据的数据源各异, 格式各异, 类型各异;而用户常常需要从多个异构的数据源中提取数据的报表, 这些报表可以将企事业单位中存在的多个不同数据源的数据放在一起, 从而获得对业务执行的充分理解。针对这些复杂的业务报表数据的处理, 制定解决方案十分困难, 特别是针对不规则报表的处理那就更加困难;本文针对SQL Server报表服务等生成的后台报表的缩进问题进行了分析研究, 借助JSON和容器树给出了一种通用的实现方法, 包含了前端文本数据的层次结构, 并在web前端按照层次结构正确缩进并呈现。

1 JSON数据

我们知道构成数据的最小单位可以分解成三种类型:第一种类型是标量 (也就是一个单独的字符串或数字) ;第二种类型是序列 (也就是若干个相关的数据按照一定顺序并列在一起, 又叫做数组或列表) ;第三种类型是映射 (也就是一个名/值对) , 即数据有一个名称, 还有一个与之相对应的值, 这又称作散列或字典。可见, 在编程语言中, 只要有了数组和对象就能够储存一切数据了。21世纪初, XML作为一种通用的数据交换语言能够在服务器之间交换数据, 但是XML的生成和解析都太麻烦;Douglas Crockford作为Web开发领域最知名的技术权威之一创造了Json这一轻量级的数据交换格式, 它采用完全独立于语言的文本格式, 基于Java Script的一个子集, 易于阅读和编写, 同时也易于机器解析和生成。它有四条规则:一是并列的数据之间用逗号分隔, 二是映射用冒号表示, 三是并列数据的集合 (数组) 用方括号表示, 四是映射的集合 (对象) 用大括号表示。

2 设计思想

针对后台报表在设计时使用了缩进, 但在web前端又要原样呈现这一问题, 采取了“得到数据、分析数据、呈现数据”的原则, 使用了一个容器树和递归算法较为快捷的解决了这个问题。具体是按照数据特点先把数据放到一个对象中, 然后递归解析拼接成HTML。主要是通过两个函数实现, write Rich Text负责分析提取数据到一个容器树中, write Rich Text Item负责从容器树中递归解析形成HTML。这样做代码更简洁, 可读性强, 比起使用循环更简捷。

3 详细设计

通过数据分析可发现, 实现的关键是Paragraph中的List Level关键字, 它决定了每个段落出现在页面中的位置, 数字越小越靠页面左边、数字越大越靠页面右边;但当前数据中每个数据都为兄弟节点, 无法体现数据缩进结构。数据缩进是树形结构的一个典型应用, 父节点在上, 子节点在下, 反映到页面上就是父节点在左, 子节点在右;因此这来决定把数据整合到一个属性结构中, 然后通过解析这个树在前端构造缩进结构, 前端缩进基于Html ol (有序列表) 和ul (无序列表) 结构, 并通过list-style-type属性设置列表样式。

3.1 后台生成JSON数据包含的文本结构

Paragraphs包含1-n个段落数组, 每个段落含Text Runs、Paragraph、Text Run Count、Text Run Offsets四个属性。

(1) Text Runs含文本内容、前端文本样式等属性, 用于文本内容显示。

(2) Paragraph含段落级别、段落样式等属性, 用于文本布局。

(3) Text Run Count描述该段落包含的Text Run的个数。

(4) Text Run Offsets描述该段内容在整个文本流中的位置。

另外Unique Name为每个节点的唯一命名, 可通过该名称找到这个节点, 如图1所示。这时候Paragraph Container包含了若干层次的数组, 每个数组包含该层次的节点, 辅以parent Name数组决定每个节点对应上个层次的哪一个节点。

3.2 前台呈现的主要函数设计

为了将后台带有缩进的报表数据在前台原样呈现, 主要由函数write Rich Text负责分析提取后台数据到一个容器树中, 函数write Rich Text Item负责从容器树中递归解析形成HTML。

3.2.1 函数write Rich Text (paragraphs) 的算法实现

(1) 通过jquery新建一个空白div;

(2) 如果数据源为空转 (7) , 否则转 (3) ;

(3) 保存当前最小list Level值, 设置最小索引值, 父节点名、段落容器、根节点等值均为空;

(4) 用jquery的each方法遍历段落中的obj, 形成段落树形结构, 此过程中要判断本层次数组是否为空, 若为空就创建它, 若不为空就保存这一层对应的父节点名称, 若无父节点那就判断是否为根节点, 否则就获取父节点;

(5) 将这个包含了节点本身和相应的父节点添加到对应层次的数组中;

(6) 调用write Rich Text Item函数构造HTML;

(7) 结束。

3.2.2 函数write Rich Text Item (paragraphs, Index, parent Name, Parent Container) 的算法实现

(1) 使用each循环访问容器树, 如果容器树中已无未曾访问的节点转 (7) , 否则转 (2) ;

(2) 针对每一节点, 根据List Style判定列表是否有序, 若有序转 (3) , 无序转 (4) , 其它转 (5) ;

(3) 如果是有序列表, 添加对应的样式并调用getliststyle函数给出具体的列表实现, 转 (6) ;

(4) 如果是无序列表, 添加对应的样式并调用getliststyle函数给出具体的列表实现, 转 (6) ;

(5) 如果既不是有序也不是无序, 就设置一个空的div, 新添加唯一的name属性, 构造列表项并具体赋值, 转 (6) ;

(6) 如果容器树中还有下一层节点, 递归调用自身继续构造html, 直到容器树中的所有节点都被访问完为止;

(7) 结束。

4 最终效果图

针对图1中给出的文本结构, 最终效果如图2所示, 充分体现了缩进之后的报表样式。用户只需要根据自己的需要更改文本结构即可得到自己想要的缩进报表。

5 结语

针对异构数据源提取的不规则报表数据进行了前台原样呈现的实现, 可以将它看成是一个平台, 代码简洁, 可读性强, 比起用一层层循环写XML更简单, 能够为用户节约时间, 对实际工作具有非常好的指导意义和实用价值。

参考文献

[1]SUN Baojun.Comparison and Research of JSON and XML[J].Inner Mongolia Science Technology&Economy.2009 (12) :122-126

[2]倪睿熙.一种基于JSON的异构数据查询方法[J].无线电通信技术, 2013, 39 (1) .

[3]旭日, 薛慧君.一种通用报表的设计和实现[J].现代电子技术, 2010, (18) .

[4]李金方.Web报表系统的研究与实现[D].北京交通大学, 2009.

JSON数据 篇8

由于ADS-B数据量大, 更新速度快, 选取恰当的数据格式来完成ADS-B数据的存储以及管理显得十分重要。本文将从数据存储空间与存储效率方面将JSON与XML数据格式进行对比, 分析得出应用JSON数据格式完成ADS-B数据储存的优势与可行性, 进而利用JSON实现对大量ADS-B数据的管理。

1 ADS-B数据储存格式分析

ADS-B数据链频率通常为1090MHz。接收机通过接收并解码DF17 格式的ADS-B报文, 可以得到包含飞行状态等信息的ADS-B数据。具体包括:飞机地址、接收时间、航班号、国家/ 地区、经度、纬度、几何高度 (m) 、距离 (km) 、飞机类型、航向 (度) 、地速 (kts) 、升降率 (feet/min) 、飞机状态、方位角等。

为了更加高效地实现对ADS-B数据的管理, 选择一种通用、便捷的数据交换格式异常重要。作为当前网络服务应用领域内通用的数据传输格式, JSON与XML具有各自的优势。然而, 从存储空间及存储效率方面来看, JSON格式更胜一筹。

XML的元素属性通常包含一些关于元素的额外信息, 且必须以“<”、“>”和标记名称作为开始结束标记。而JSON格式省略了结束标记, 使数据量大为减少[3]。JSON数据对象以一对大括号包含, 标记名称通过引号列在括号最前, 后面的属性和内容同样通过大括号和值对的形式列出。JSON数据分隔符的使用, 开创了便捷有效的数据访问途径。XML与JSON的输出格式具体如表1 所示[4]。

为了验证JSON格式在存储空间及存储效率方面的优势, 分别采用JSON和XML两种数据格式对ADS-B数据进行存储。

利用JSON格式存储内容为:

其相对应的XML格式存储内容为:

分别利用上述两种格式对不同ADS-B数据量 (以不同的航班数据条数呈现) 进行存储, 可以得到:随着数据量的增大, 在存储空间及存储效率方面, JSON数据格式体现出更好地效果, 具体如图1 所示。

2 ADS-B数据的管理策略

基于JSON的数据管理方法在存储空间和效率上具有的优势, 本文采取将接收的ADS-B数据解析成JSON格式再进行管理的策略。首先, 利用.Net编程实现JSON数据的生成与解析;其次, 在程序中引入开源类库Newtonsoft.Json以提高数据的处理效率, 利用JObject、Json Reader、Json Writer等功能完成对JSON数据的处理。

然而, 对获取的ADS-B数据直接进行管理时, 不同时刻、不同航班的数据存放于同一个JSON文件中, 不便于数据的分析处理。例如, 分析特定航班的运行状态时, 需要大量繁琐的数据搜索、提取等操作, 效率较为低下。

为了有效解决上述问题, 本文以飞机地址、时间等信息为标准进行分类, 将海量ADS-B数据中相同飞机地址的数据按照时间顺序存入一个与之对应的JSON文件。此文件存储该飞机地址所对应航班不同时刻的经纬度、高度以及速度等信息。为了实现上述操作, 本文采用如图2 所示结构进行数据处理。ADS-B数据的储存以飞机地址为划分, 每个飞机地址对应的文件下包含不同时刻, 不同的时刻中又包含当前时刻的飞行信息。当读取一条新的ADS-B数据时, 提取出飞机地址, 并将其与结构中已存在的飞机地址相比较, 存在则归类, 不存在则新建文件进行存储。

利用上述策略可以实现对海量ADS-B数据的分类管理, 通过检索飞机地址索引可以轻松获取特定时间特定航班的飞行数据, 进而方便高效地进行相应数据处理。

3 结语

作为一种新型的监视技术, ADS-B将对整个民航空管体系具有深远的影响, 而针对ADS-B数据的存储以及管理工作便具有重要意义。因此, 本文提出基于JSON的ADS-B数据管理策略, 将ADS-B数据分别以JSON与XML格式进行存储。实验结果表明, JSON数据格式具有存储空间小、存储效率高的优势。在此基础上, 本文实现了海量ADS-B数据的分类管理, 提升了数据处理的便利性。

参考文献

[1]张天平, 郝建华, 许斌, 丁丹.ADS-B技术及其在空管中的发展与应用[J].电子产品世界, 2009 (6) :34-37.

[2]张青竹, 张军, 刘伟, 朱衍波.民航空管应用ADS-B的关键问题分析[J].电子技术应用, 2007 (9) :72-74.

[3]张涛.一个基于JSON的对象序列化算法[J].计算机工程与应用, 2007 (15) :98-100.

JSON数据 篇9

关键词:Ajax,JSON,动态script标签,跨域

1 引言

当前多数的Web服务都是采用XML作为数据交换格式。因此当我们在Ajax应用中会使用XMLHttp Request对象来访问Web服务的时候就会遇到跨域限制问题。

跨域问题的实质是由于浏览器对Java Script脚本的安全限制使得在Ajax应用中只能访问本域的Web服务。我们通常选用的解决方案是在本域的服务器上建立一个跨域代理 (Cross Domain Proxy) 来间接的访问第三放Web服务。但是跨域代理需要在本域的服务器上运行, 不仅浪费服务器资源, 而且也增加了开发和维护成本。如果我们在编写Web服务的时候放弃XML作为数据交换格式, 而采用JSON (Java Script Object Notation) 数据交换格式, 那么将能够利用动态建立script标签的方式来规避跨域限制。

2 动态script标签技术

我们知道, script标签是属于HTML标签, 而HTML标签是没有跨域限制的。从而我们可以使用script标签中的src属性来访问其他任意域的URL链接来获取数据。

文档对象模型 (DOM, Document Object Model) 为我们提供了动态建立script标签的能力。我们可以在需要的时候使用document.create Element () 方法来建立一个script标签对象, 并使用set Attribute () 方法来设定它的src、id、type、language等属性, 这样当我们使用append Child () 方法将这个刚刚建立的script标签添加到网页中后, 我们就能够得到这个script标签src属性的URL所返回的数据。

3 JSON数据交换格式

Web服务使用XML作为数据交换格式是不能用script标签访问Web服务并获取数据的。但如果Web服务使用JSON作为数据交换格式就不会存在这个问题了。

3.1 JSON的定义

JSON建构于两种结构:

“名称/值”对的集合 (A collection of name/value pairs) 。不同的语言中, 它被理解为对象 (object) , 纪录 (record) , 结构 (struct) , 字典 (dictionary) , 哈希表 (hash table) , 有键列表 (keyed list) , 或者关联数组 (associative array) 。

值的有序列表 (An ordered list of values) 。在大部分语言中, 它被理解为数组 (array) 。

简单来说, JSON实际上是利用现代编程语言大多支持的一些基本数据结构, 例如数组、字符串、对象等。进行抽象而来的一种通用数据表述格式。这使得JSON数据格式在能够支持这些数据结构的编程语言之间能够进行数据的交换。

3.2 JSON格式举例

使用XML格式表示一个学生的姓名、学号、成绩等信息, 可能如下:

上述XML转换为JSON格式表示:

从上面的例子中我们可以看出, XML和JSON有比较好的对应关系, XML数据可以非常容易的转换到JSON。事实也正是如此, 大多数的XML数据再转换为JSON的时候都不会有问题。例如在http://www.thomasfrank.se/xml_to_json.html网站中就提供一个自动进行XML to JSON转换的Java Script脚本。

3.3 JSON数据的访问

JSON数据的访问相对于XML要简单很多。可以如同Java Script对象一样访问JSON数据。例如在上述JSON数据中, 我们要访问第一个学生的姓名, 只要写:Students JSON.student[0].name就可以了。要访问第二个同学的学号:Stu-dents JSON.student[1].studentid

4 实例研究

雅虎为我们提供了一个图片搜索Web服务, URL为:http://search.yahooapis.com/ImageSearch Service/V1/image Search。这个Web服务支持返回JSON格式数据。该Web服务接受的参数为如下:

只要动态构建该URL并加入动态创建的script标签中的src属性中即可获得Web服务返回的JSON数据。查询的结果都在Result Set.Re-sult[0]数组中。

当我们构建好查询网页后, 可以在本机上用IE或Firefox等浏览器直接打开该网页并测试。

5 实验结果及比较

可以看到采用动态script标签技术结合JSON数据交换格式的方法使得跨域访问Web服务非常的容易。然而在Web服务中使用JSON数据交换格式相对于XML又有那些优缺点呢?下面从五个方面进行分析:

可读性:JSON和XML的可读性可谓不相上下, JSON采用常见的语法数据结构, XML使用的是规范的标签形式。

可扩展性:XML天生有很好的扩展性, 而JSON也不逊于XML。

编码难度:XML有丰富的编码工具, 比如Dom4j、JDom等, JSON也有json.org提供的工具, 但是JSON的编码明显比XML容易许多, 即使不借助工具也能写出JSON的代码, 可是要写好XML就不太容易了。

解码难度:XML的解析得考虑子节点父节点, 让人头昏眼花, 而JSON的解析难度几乎为0。这一点XML输的真是没话说。

流行度:XML已经被业界广泛的使用, 而JSON才刚刚开始, 但是在Ajax这个特定的领域, 未来的发展也许XML要让位于JSON。到时Ajax就应该变成Ajaj (Asynchronous Java Script and JSON) 了。

参考文献

[1]json.json.org.http://www.json.org/json-zh.html

上一篇:阑尾炎误诊病例分析下一篇:脱水治疗