如何正确理解JSON.NET标签加载
创始人
2024-06-19 09:11:18
0

JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然,究其本质还是通过JSON.NET标签动态加载js,似乎这是实现真正跨域的***方法。下面进行分析研究。

1、getJSON的用法JQuery手册已经写得很详细,参考手册就可以了,很简单。需要指出的一点是getJSON利用的jsonp需要客户端与服务端作出配合。#t#

2、客户端传递的URL里要包含callback变量,以形如callback=?的形式结尾。(jquery会随机生成一个字符串替换?传递给服务端),服务端获取客户端传递的callback的值callbackValue,和需要传递的json字符串构成 JSON.NET’(’.json.’)'传回给客户端(示例为php字符串连接方式,其他语言类似)

  1. 一、可以通过Javascript中的eval函数把符合一定格式的字符串转化成JSON对象  
  2.  
  3.  language="javascript"> 
  4.  
  5. function ShowJsonString()  
  6.  
  7.  {  
  8.  
  9. response = (  
  10.  
  11. "[{ name: 'Joe', age: '30', gender: 'M'},{ name: 'Chandler', age: '32', gender: 'M'},{ name: 'Rose', age: '31', gender: 'M'}]" //字符串形式  
  12.  
  13. );  
  14.  
  15. var response1 = "({ name: 'Vicson', age: '30', gender: 'M'})"; //字符串形式,这里的小括号不能少  
  16.  
  17. json = eval(response);  
  18.  
  19. json1 = eval(response1);  
  20.  
  21. alert(json[0].name + "," + json[1].age + "," +json[2].gender);  
  22.  
  23. alert(json1.name);  
  24.  
  25. }  
  26.  
  27. ShowJsonString();  
  28.  
  29.  
  30.  
  31. 二、直接定义JSON对象  
  32.  
  33.  language="javascript"> 
  34.  
  35. function ShowJsonObject()  
  36.  
  37. {  
  38.  
  39. var user =  
  40.  
  41. {   
  42.  
  43. username:"andy",  
  44.  
  45. "age":20,  
  46.  
  47. "info": { "tel": "25003614", "cellphone": "882"},  
  48.  
  49. "address":  
  50.  
  51. [  
  52.  
  53. {city:"shenzhen","postcode":"0755"},  
  54.  
  55. {"city":"guangzhou","postcode":"020"}  
  56.  
  57. ] //address是一个数组  
  58.  
  59. } //对象形式  
  60.  
  61. alert(user.username);  
  62.  
  63. alert(user.age);  
  64.  
  65. alert(user.info.cellphone);  
  66.  
  67. alert(user.address[0].city);  
  68.  
  69. alert(user.address[0].postcode);  
  70.  
  71. }  
  72.  
  73. ShowJsonObject();  
  74.  
  75.  

JSON.NET的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

相关内容

热门资讯

如何允许远程连接到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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...