前言
JSON采用完全独立于语言的文本格式,从而使得在JavaScript相关程序中处理JSON 格式的数据不需要应用任何特殊的API或软件工具包,这使得JSON成为理想的数据交换语言。
随着Web应用的普及及AJAX相关应用的深入,客户端和Web服务器端需要频繁地交互数据;同时随着移动设备的普及,客户端的访问设备也逐渐多样化。如何使得同一Web 服务器能够响应不同的终端设备,并且都能够进行数据交互。目前比较好的技术实现手段是应用JSon相关的技术。
作者根据自身多年的软件开发实践和经验总结,结合多年的IT职业培训的教学和高校软件学院一线的教学工作体验,在本系列文档中将从多个不同的方面和通过具体的程序代码示例为读者介绍JSon及相关的应用技术。本文档主要涉及JSon的语法规则、JSon在AJAX 中的应用、JQuery对JSon的技术支持和应用JSonp协议实现跨域访问技术和应用示例。
欢迎读者下载相关的技术资料阅读和收藏,并提出良好的建议。感兴趣的读者可以在百度文库页面中搜索“杨少波”,将能够搜索到杨教授工作室精心创作的优秀程序员职业提升必读系列技术资料。
这些资料将系统地从软件设计和开发实现的“设计思想”、“管理策略”、“技术实现”和“经验方法”等方面与读者进行充分的交流,也欢迎读者发表和交流自己对软件开发、课程设计、项目实训、技术学习的心得体会。
本文目录
1.1JSON相关技术基础 (4)
1.1.1JSON相关的技术基础 (4)
1.1.2JSON对象表示的语法 (5)
1.2JSON和JavaScript之间转换 (12)
1.2.1将JSon格式的字符串转换为JavaScript对象 (12)
1.2.2转换技术的应用示例 (16)
1.3JSON系统包json.js (24)
1.3.1JSON的 (24)
1.3.2JSON 系统库中的stringify 函数 (25)
1.3.3JSON 系统库中的parse函数 (28)
1.4在AJAX中应用JSon实现客户/服务器之间交换数据 (31)
1.4.1JSon格式的字符串特别适合于AJAX的数据传递 (31)
1.4.2获得服务器端返回的JSON对象字符串 (32)
1.4.3在客户端JS程序中向服务器端程序发送JSON对象字符串 (39)
1.5JQuery和JSON相互配合应用AJAX技术 (46)
1.5.1JQuery中与AJAX技术相关的几个函数 (46)
1.5.2$.getScript()和$.getJSON()函数的各种调用形式示例 (49)
1.5.3$.ajax()函数的各种调用形式示例 (52)
1.6JavaScript中的跨域访问技术及示例 (55)
1.6.1JSONP协议及相关实现技术 (55)
1.6.2应用JQuery实现跨域访问示例 (59)
1.6.3应用普通的JavaScript脚本实现跨域访问示例 (68)
1.7JQuery和AJAX技术相互配合的应用示例 (70)
1.7.1构建相关的JSP页面和JavaScript脚本代码 (70)
1.7.2构建服务器端相关的Servlet程序 (74)
1.7.3解决中文乱码的问题 (79)
1.8动态加载页面数据的应用示例 (81)
1.8.1构建相关的页面及JS脚本程序 (81)
1.8.2测试相关的程序效果 (84)
1.8.3用ajax函数读取和解析XML文件中数据的应用示例 (84)
1.1JSON相关技术基础
1.1.1JSON相关的技术基础
1、JSON是什么
JSON的全称JavaScript Object Notation,JavaScript对象表示法。它不仅是一种轻量级的数据交换格式,同时也是JavaScript(Standard ECMA-262 3rd Edition - December 1999)语言的一个子集。
JSON采用完全独立于语言的文本格式,从而使得在JavaScript相关程序中处理JSON格式的数据不需要应用任何特殊的API或软件工具包,这使得JSON成为理想的数据交换语言。
2、JSON的主要作用
其主要的作用是提供结构化数据的一种表示,而不依赖于所用的语言和平台。使用这种格式,可以在不同语言编写的应用程序之间交换数据,而且可以在不同机器上运行相关的应用程序。
jquery在线免费学习(1)JSON 可以将JavaScript 对象转换为字符串的表示形式或者将特定格式的字符串转换回为JavaScript 对象,最终实现JavaScript 对象的序列化和反序列化;
(2)可以在JavaScript的各个函数之间轻松地传递JSON字符串,或者在AJAX等异步请求的应用程序中将JSON字符串从Web 客户机传递给服务器端程序或者反传递。
3、JSON为什么能够达到与具体的编程语言无关
现代计算机语言中常见的数据结构的表示形式主要是如下的两种方式,而JSON也主要是应用这样的表示方式。因此,JSON的数据表示形式在不同的编程语言中都可以识别和解析理解——也就是到了一种与语言无关的通用对象表示形式。
(1)“名称/值”对的集合
当然在不同的语言中,对采用“名称/值”对的集合的表示形式最终可能会被理解为对象(object)、纪录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、有键列表(keyed list)或者关联数组(associative array)等形式,但数据关系在本质上是一样的。
(2)而“值的有序列表”在大部分语言中都被理解为数组(array)。
目前的各种编程语言如ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等都提供对JSON的对象表示形式的技术支持。
4、JSON建构于两种数据结构的表示方式
(1)JSON格式的数据主要为两种结构形式
一个“名/值”对集合,称为对象(object)以及一个有序的值列表,称为数组(array)。而且这种数
据格式易于人阅读和编写(也就是具有自我描述的特性),同时也易于机器解析(相关的程序自动化地处理)和生成。
(2)JSon的“单一对象”表示语法
对某个“单一对象”(也就是程序设计中普遍应用的实体PO对象)的JSon表示语法主要是应用“名称/值”对的集合(A collection of name/value pairs)的语法定义格式。如下示例:{"userName":"张三" , "userSex":"m", "userAge":"40"};表示某个用户信息对象,其中包含有名称(userName)、性别(userSex)和年龄(userAge)三个特定的成员属性。
它被理解为对象(Object)、记录(Record)、结构(Struct)、字典(Dictionary)、哈希表(Hash Table)、有键列表(Keyed List)或者关联数组(Associative Array)等名称。此种表示方式其实和Java语言中的Map集合的数据存储形式相似。
(3)JSon的“复合对象(集合或者数组)”表示语法
对“复合对象(集合或者数组)”的JSon表示语法主要是应用值的有序列表(An ordered list of values)的表示形式,在大部分语言中,它被理解为数组(Array)或者集合。如下示例表示某个集合对象,其中包含有多个“单一的实体PO对象”:
[
{"userName":"张三" , "userSex":"m", "userAge":"40"},
{"userName":"李四" , "userSex":"f", "userAge":"30"},
{"userName":"王五" , "userSex":"m", "userAge":"20"}
]
5、JSon格式字符串中的花括弧、方括弧和冒号、逗号的含义
(1)花括弧“{ }”表示一个“容器”
(2)方括号“[ ]”装载数组,从而可以表示一批对象
(3)“成员属性名称”和“数据值”之间用冒号“:”隔开
(4)数组或者集合中的各个成员元素对象通过逗号“,”相互隔开
1.1.2JSON对象表示的语法
1、单个JSon格式的对象(Java语言中的实体对象)的字符串表示形式
一个对象以“{”(左括号)开始,“}”(右括号)结束,每个“属性名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。如下示例:
{

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。