基于JSON的Ajax实践
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




