准备工作

·Customer类

public class Customer
{
    public int Unid { get; set; }
    public string CustomerName { get; set; }
    public string Memo { get; set; }
    public string Other { get; set; }
}

·服务端处理(Json_1.ashx)

Customer customer = new Customer 
      { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);

context.Response.Write(strJson);

(一)Jquery. getJSON

方法定义:jQuery.getJSON( url, data, callback )

通过get请求得到json数据

·url用于提供json数据的地址页

·data(Optional)用于传送到服务器的键值对

·callback(Optional)回调函数,json数据请求成功后的处理函数

function(data, textStatus) {
        // data是一个json对象
        // textStatus will be "success"
       this; // the options for this ajax request
}

(1)一个对象

$.getJSON(
    "webdata/Json_1.ashx",
    function(data) {
       $("#divmessage").text(data.CustomerName);
    }
);

向Json_1.ashx地址请求json数据,接收到数据后,在function中处理data数据。 这里的data的数据是一条记录,对应于一个customer实例,其中的数据以k/v形式存在。即以[object,object]数组形式存在。

{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"}

所以在访问时,以data.Property来访问,下面以k/v循环来打印这条宋江的记录:

$.getJSON(
    "webdata/Json_1.ashx",
    function(data) {
        var tt="";
        $.each(data, function(k, v) {
            tt += k + ":" + v + "<br/>";
        })
        $("#divmessage").html(tt);
});

结果:

Unid:1
CustomerName:宋江
Memo:天魁星
Other:黑三郎

(2)对象数组

Ashx文件(Json_1.ashx)修改:

List<Customer> _list = new List<Customer>(); 
Customer customer = new Customer 
       { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
Customer customer2 = new Customer 
       { Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" };

_list.Add(customer);
_list.Add(customer2);
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list);

它生成的json对象的字符串是:

[{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"},

{"Unid":2,"CustomerName":"吴用","Memo":"天机星","Other":"智多星"}]

这里可以看到做为集合的json对象不是再一条记录,而是2条记录,是一个[[object,object]]数组:[object,object][object,object],而每个[object,object]表示一条记录,对应一个Customer,其实也是k/v的形式,而这个v就是一个Customer对象,而这个k是从0开始的索引。

$.getJSON(
    "webdata/Json_1.ashx",
    function(data) {
        $.each(data, function(k, v) {
            alert(k);
        });
});

这时,k值为0,1……

列表json对象的方法:

$.getJSON(
    "webdata/Json_1.ashx",
    function(data) {
        var tt = "";
        $.each(data, function(k, v) {
            $.each(v,function(kk, vv) {
                tt += kk + ":" + vv + "<br/>";
            });
        });
        $("#divmessage").html(tt);
});

结果:

Unid:1
CustomerName:宋江
Memo:天魁星
Other:黑三郎
Unid:2
CustomerName:吴用
Memo:天机星
Other:智多星

这里用了嵌套循环,第一个循环用于从List中遍历Customer对象,第二个循环用于从Customer对象中遍历Customer对象的属性,也就是k/v对。

关于序列化与反序列化请见其它随笔(JSON)

Jquery getJSON方法分析(一)相关推荐

  1. Jquery getJSON方法分析(二)

    getJSON与aspx 准备工作 ·Customer类 public class Customer {     public int Unid { get; set; }     public st ...

  2. ajax的get json数据格式,jQuery / 用getJSON()方法加载JSON格式数据 - 汇智网

    加载JSON格式数据 jQuery的AJAX中使用getJSON()方法异步加载JSON格式数据.获取服务器中的数组,并对获取的数据进行解析,显示在页面中. 语法:$.getJSON(url,[dat ...

  3. jQuery源码分析之$.ajax方法

    请阅读我其它的关于inspectPrefiltersOrTransport以及ajaxTransport等相关博文,请了解readyState状态码 针对获取到location.href的兼容代码: ...

  4. jquery 遍历java对象,js/jquery遍历对象和数组的方法分析【forEach,map与each方法】...

    本文实例讲述了js/jquery遍历对象和数组的方法.分享给大家供大家参考,具体如下: JS forEach方法 arr[].forEach(function(value,index,array){ ...

  5. jQuery使用getJSON方法获取json数据完整示例

    本文实例讲述了jQuery使用getJSON方法获取json数据.分享给大家供大家参考,具体如下: demo.js: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  6. jQuery源码分析之实例find和filter方法的区别七问

    问题1:jQuery.filter的源码是什么? jQuery.filter = function( expr, elems, not ) {var elem = elems[ 0 ];//如果含有第 ...

  7. jQuery源码分析之removeAttr方法和attr方法

    jQuery.removeAttr函数源码测试: <input type="radio" checked/> var rnotwhite = (/\S+/g); var ...

  8. JSONP跨域原理和jQuery.getJSON用法

    JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式).本文主要介绍JS ...

  9. jQuery 源码分析第一篇之入口源码

    目前阅读的是jQuery 1.11.3的源码,有参考nuysoft的资料.原来比较喜欢在自己的Evernote上做学习基类,并没有在网上写技术博客的习惯,现在开始学习JS的开源代码,想跟大家多交流,希 ...

最新文章

  1. python爬虫学习(三):使用re库爬取淘宝商品,并把结果写进txt文件
  2. +new Date()的用法
  3. java输入输出实验报告_JAVA实验报告(河北工业大学)
  4. 3d17304计算机开机号,福彩3D17304期福彩3D开机号147对应码653牛彩网关注数037金码0...
  5. Selenium对于对话框alert,confirm,prompt的处理
  6. activemq 内存_ActiveMQ中的温度,存储和内存使用百分比
  7. SpringBoot2 整合OAuth2组件,模拟第三方授权访问
  8. mongodb的架构 副本集搭建
  9. ubuntu 安装GPU黑屏 修改GRUB_仅支持legacy bios 情况下 win10 安装 ubuntu 双系统踩的一坑...
  10. 浮躁的世界里 我们要的是生活
  11. python微信图标制作_Python帮你微信头像任意添加装饰,别再@微信官方了!
  12. neutron的dvr
  13. Linux 系统中如何恢复已删除的文件?
  14. C语言堆栈应用之逆波兰法表达式求值
  15. PBOOT网站后太登录显示验证码错误的解决经验分享
  16. stm32h7内存分配_【STM32H7教程】第25章 STM32H7的TCM,SRAM等五塊內存基礎知識
  17. [从头读历史] 第280节 诗经目录以及十五国风的地域分布
  18. android 远吗编译 刷机 小米,小米10/小米10 Pro系统源代码现已开源,能刷机才是为发烧而生...
  19. ICME2021:基于机器学习的VVC帧内编码码率控制
  20. C++面试常见问答题看这三篇文章就够了(上)

热门文章

  1. 中国科学院空天信息研究院苏州分院面试——总结
  2. 【学习总结】GirlsInAI ML-diary day-3-数据类型
  3. for,while循环
  4. c#中Class和Struct使用与性能的区别
  5. libklel 1.1.0 发布,表达式语言
  6. Celt Codec简单使用方法
  7. java robot 对象_用Java Robot对象实现服务器屏幕远程监视
  8. mysql打包备份数据到_thinkPHP使用pclzip打包备份mysql数据库的方法
  9. 2.Riesz定理及其应用
  10. js rsa解密中文乱码_建议收藏 | 最全的 JS 逆向入门教程合集