Ajax---发送参数:使用JSON替代XML向服务器发送数据

 引 使用XML向服务器发送数据的数据结构很复杂。通过串连接来创建XML串并不好,这也不是用来生成或修改XML数据结构的健壮技术。

---------------------------------------------------------------------------------------------------------------------------------------------------

 

JSON概述:

==========

       xml 的一个替代方法是JSON,可以在www.json.org 找到。JSON是一种文本格式,它独立具体语言,但是使用了与C

系列语言(如C,C# , Javascript等)类似的约定。JSON建立在以下两种数据结构基础上。当前几乎所有编程语言都支持这两种数据结构。

 

*名/值对集合。在当前编程语言中,这实现为一个对象,记录或字典。

 

*值的有序表。这通常实现为一个数组。

 

      因为这些结构得到了如此众多的编程语言的支持,所以JSON是一个理想的选择,可以作为异构系统之间的一种数据转换格式。另外,由于JSON是基于标准Javascript的子集,所以在所有当前WEB浏览器上都应该是兼容的。

 

      JSON对象是名/值对的无序集合。对象以{开始,以}结束,名/值对用冒号分隔。JSON数组是一个有序的值集合,以【开始,以】结束,数组中的值用逗号分隔。值可以是串(用双引号引起),数值,true 或false,对象,或者是数组,因此结构可以嵌套。

 

 

考虑一下employee对象简单例子。employee对象可能包含名,姓,员工号和职位等数据。使用JSON,可以如下表示employee对象实例:

    

    var employee ={

        "firstName":John

       ,"lastName":Doe

       ,"employeeNumber":123

       ,"title" :"Accountant"

    }

 然后可以使用标准点记法使用对象的属性,如下所示:

  var lastName =employee.lastName;  //Access the last Name

  var title = employee.title;                  //Access the title

  employee.employeeNumber = 456;  //change the employee number

 

 JSON有一点很引以为豪,就是他是一个轻量级的数据互换格式。如果用XML来描述同样的employee对象,可能是如下的麻烦:

 

 <employee>

     <firstName>John</firstName>

     <lastName>Doe</lastName>

     <employeeNumber>123</employeeNumber>

     <title>Accountant</title>

 </employee>

 

  显然,JSON编码比XML编码简单。JSON编码比较小,所以如果在网络上发送大量数据,可能会带来显著的性能差异。

  www.json.org网站列出了至少与其他编程语言的14种绑定,这说明,不论在服务器端使用何种技术,都能通过JSON与浏览器通信。

 

 

 

使用JSON的示例

 

    下面是一个简单的例子,展示了如何使用JSON将Javascript对象转换为串格式,并使用Ajax技术奖这个串发送到服务器,然后服务器根据这个串创建一个对象。这个例子中没有业务逻辑,也几乎没有用户交互,她强调的是客户端和服务器端的JSON技术。

 

代码清单: jsonExample.html

 


js/json2.js------>所需JSON的JS文件

js/jsonExample.js

 

 

 

servlet/JSONExample.java   (需要导入org.JSON.*包)

 

 

 

输出结果:

 

过程详解:

===============================

      点击按钮调用doJSON函数。这个函数首先调用getCarObject函数来返回一个新的Car对象实例,然后使用JSON javascritp库将Car对象转换为JSON串,再在警告框中显示这个串。接下来使用XMLHttpRequest对象将JSON编码的Car对象发送到服务器。

      因为有可疑免费得到的JSON- Java绑定库,素以编写Java servlet来为JSON请求提供服务相当简单。更妙的是,由于对每种服务器端技术都有相应的JSON绑定,所以可以使用任何服务器端技术实现这个例子。

      JSONExample servelt的doPost方法为JSON请求提供服务。首先调用readJSONStringFromRequestBody方法从请求题获得JSON串。JSONObject在对象创建时自动解析JSON串。一旦创建了JSONObject,就可以使用各个get方法来获得对象属性。

      这里使用getstring 和getInt方法来获取year,make,model和color属性。这些属性连接起来构成一个串返回给浏览器,并在页面上显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值