使用简单的JSON 方法调用进行说明调查
创始人
2024-06-19 21:01:04
0

下面介绍JSON 方法调用的使用方法,对与JSON 方法调用,相比不能生成文本的JSON 方法调用,能生成文本的 API 自然更可取;而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思。

 developerWorks Ajax 资源中心
请访问 Ajax 资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何关于 Ajax 的新信息都能在这里找到。 #t#
 
XML 也可以提供文本方面的类似益处,但用于将 JavaScript 对象转换成 XML 的几个现有 API 没有 JSON API 成熟;有时,您必须在创建和处理 JavaScript 对象时格外谨慎以确保所进行的处理能与所选用的 XML 会话 API 协作。但对于JSON 方法调用,情况就大不相同:它能处理几乎所有可能的对象类型,并会返回给您一个非常好的 JSON 数据表示。

因此,JSON 的***价值在于可以将 JavaScript 真的作为 JavaScript 而非数据格式语言进行处理。您所学到的所有有关使用 JavaScript 对象的技巧都可以应用到代码中,而无需为如何将这些对象转变成文本而多费心思。这之后,可以进行如下所示的简单 JSON 方法调用

  1. String myObjectmyObjectInJSON = myObject.toJSONString(); 

将 JSON 发给服务器并不难,但却至关重要,而且还有一些重要的选择要做。但是,一旦决定使用JSON 方法调用,所要做的这些选择就会十分简单而且数量有限,所以您需要考虑和关注的事情不多。重要的是能够将 JSON 字符串发送给服务器,而且***能做到尽快和尽可能简单。

将 JSON 数据发给服务器的最简单方法是将其转换成文本,然后以名称/值对的值的方式进行发送。请务必注意,JSON 格式的数据是相当长的一个对象,看起来可能会如清单 1 所示:

  1. var people =  { "programmers": [    { "firstName": "Brett", "lastName":"McLaughlin",  
  2. "email": "brett@newInstance.com" },    { "firstName": "Jason", "lastName":"Hunter",  
  3. "email": "jason@servlets.com" },    { "firstName": "Elliotte", "lastName":"Harold",  
  4. "email": "elharo@macfaq.com" }   ],  "authors": [    { "firstName": "Isaac",   
  5. "lastName": "Asimov", "genre": "science fiction" },    { "firstName": "Tad",   
  6. "lastName": "Williams", "genre": "fantasy" },    { "firstName": "Frank",   
  7. "lastName": "Peretti", "genre": "christian fiction" }   ],  "musicians": [      
  8. { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },     
  9. { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }   ]  } 

如果要以名称/值对将其发送到服务器端,应该如下所示:

  1. var url = "organizePeople.php?people=" + people.toJSONString();  
  2. xmlHttp.open("GET", url, true);  
  3. xmlHttp.onreadystatechange = updatePage;  
  4. xmlHttp.send(null); 

这看起来不错,但却存在一个问题:在 JSON 方法调用中会有空格和各种字符,Web 浏览器往往要尝试对其继续编译。要确保这些字符不会在服务器上(或者在将数据发送给服务器的过程中)引起混乱,需要在 JavaScript escape() 函数中做如下添加:

  1. var url = "organizePeople.php?people=" + escape(people.toJSONString());  
  2. request.open("GET", url, true);  
  3. request.onreadystatechange = updatePage;  
  4. request.send(null); 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...