json包括两种数据结构,一种类似于哈希表,另外一种类似于数组。
简单的说,就是用xml传输数据的一个替代方案,传的字节数更少,传输的过程实质上是用{}或者[]包裹的字符串,在代码短解释对象。{}对应于object,[]对应于array,在代码端同样可以做反向操作。现在很多基于ajax的应用都是在服务器端获取数据,然后生成json,传到客户端,然后在客户端渲染界面。。
再简单点,就是一种特定格式的字符串
OK,了解了JSON的结构,我们就可以回来看一下JQuery中的$.getJSON()方法了。该方法有三个参数,$.getJSON(String url, Hash params, Function callback)。其中,url是获取JSON结构数据的请求地址,即访问该地址会得到一段JSON结构的文本(这里被JQuery封装了,这一段文本是通过请求对象的responseText属性得到的)。params是向url地址的服务发送的参数,服务器可以根据这些参数做出响应。参数的结构跟JSON的结构类似,都是形似“{key1:value1,key2:value2}”的结构。callback为回调函数,即function(json){//code...},在这个函数中做客户端处理。在callback函数中,参数json就是通过向url请求得来的JSON结构文本构造出来的对象。json参数的使用很简单,它是一个哈希表对象,可以通过json.key的方式来使用其中定义的属性。例如,如果我们传入的是前面所述例子的JSON结构,我们可以通过json.addresses[0]来获取addresses的第一个值。
JSON不神秘,说白了其实就是个哈希表结构,在JavaScript中可以直接使用,非常方便。
//-------------------------------------------------------
google “Access to restricted URI denied”,发现问题出在Cross-Domain上面,看了Jquery的开发资料得知,从1.2版本开始使用 jQuery.getJSON(url,[data],[callback]) 来进行跨域提交,参考如下:
As of jQuery 1.2, you can load JSON data located on another domain if you specify a JSONP callback, which can be done like so: "myurl?callback=?". jQuery automatically replaces the? with the correct method name to call, calling your specified callback.
看了上面 JSONP的链接,几乎一无所获,按照其要求我加上了?callback=?",还是取不到任何数据,我的JS代码如下:
但是始终得不到数据,断点设到data.name一行,从来没有被执行过。于是,开始考察jsoncallback=?,发现这个其实是有值的,只是自己一直没有handle(其实是因为自己不知道怎么样handle,google很久,几乎没有找到任何直接使用ashx来处理remote json的例子),但是搜到一篇元老级的文章,是一篇专门介绍jquery ajax的文章,上面说需要将jsoncallback的值传回来,原来如此,于是就将ashx的方法修改了一下,几经转折,终于调试出来下面的代码:
其中,JsonObjectCollection 类要引用using System.Net.Json;是JSON官方网站推荐的一个dll,感觉也很不错。使用这个的好处是对于html代码的处理,因为json是通过“”传递数据的,但是html中也是含有“”的,如果直接手动拼写,会很麻烦。
这个ashx执行的结果如下:
jsonXXXXXXXXXXXXXX?其中 jsonXXXXXXXXXXXXXX 就是context.Request.QueryString["jsoncallback"] 的值。
---------------------
新浪调查结合json显示的柱状图。。survey.rar
/Files/Fooo/survey.rar/Files/Fooo/EtWebSite.rar
E假旅游结合json显示图片加载时的Loading状态。。。
/Files/Fooo/EtWebSite.rar
getJson的简单使用示例:
/Files/Fooo/JquerygetJSONdemo.rar
分享到:
相关推荐
jquery.json-2.3.min.js和jquery.json-2.3.js jQuery为开发插件提拱了两个方法,分别是:jQuery.extend(object); 为扩展jQuery类本身 jQuery.fn.extend(object);给jQuery对象添加方法。
在官网上一直下载不下来 然后共享在这 jquery.json-2.3.min.js和jquery.json-2.3.js
jquery.json-viewer.js是一款查看json格式数据的jquery插件。它可以将混乱的json数据漂亮的方式展示在页面中,并支持节点的伸展和收缩和语法高亮等功能。
jquery.json-viewer, 用于显示JSON数据的jQuery插件 jQuery浏览器JSON浏览器是一个jQuery插件,它可以通过将JSON对象转化为HTML来轻松显示JSON对象。功能:语法高亮显示在单击时折叠和展开子节点可以点击链接易于...
详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
jquery.json2xml.js&&jquery.xml2json.js在jQuery的基础上实现json与xml的相互转换
Jquery-json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换。可序列化 JavaScript 对象、数值、字符串和数组到 JSON 字符串,同时可转换 JSON 字符串到 JavaScript。 var thing = {plugin: '...
jquery.jsoncookie.js
jquery.json.min.2.3.0.js;jquery.ui.core.js;jquery-1.4.2.min.js;jquery.ui.datepicker.js;json2.js
jquery.json-2.2.
jquery.json.js 2.4 jquery json库
本项目使用了jQuery的get/post两种方法提交Json格式的数据到后台,后台再把Json格式的数据传到前台。实现了JSON字符串和JSON对象之间的转换。
jquery.json-2.4解析json对象
ajax,jquery,json一个页面实现Ajax效果的增删改查-JQuery+Json版.zip
toJSON:格式化一个 javascript对象(数组、对象、数字、字符串)为JSON格式。 evalJSON:把格式化后的JSON数据转化回为javascript对象(数组、对象、数字、字符串)
/src/main/resources/static/css/campaign/jquery.json-viewer.css
jquery javaScript jquery javaScriptjquery javaScriptjquery javaScript
<script src="./public/js/jquery-ui-1.10.3.min.js"> <script src="./public/js/jquery.datepicker-zh-CN.js"></script> <link href="./public/css/jqueryui/jquery-ui-1.10.3.min.css" rel="stylesheet"> $( "#...