当前位置: 首页 > news >正文

Jquery getJSON方法分析

 

准备工作

·Customer

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> 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

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> 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数据请求成功后的处理函数

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

 

1)一个对象

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> $.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循环来打印这条宋江的记录:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

 

结果:

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

2)对象数组

Ashx文件(Json_1.ashx)修改:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> 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开始的索引。

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

 

这时,k值为0,1……

列表json对象的方法:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> $.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);
});

 

结果:

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

 

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

相关文章:

  • 请确保在编译时已将“AjaxControlToolkit.Properties.Resources.NET4.resources”正确嵌入或链接到程序集“AjaxControlToolkit”
  • ASP.NET2.0中Page.ClientScript.RegisterClientScriptBlock与RegisterClientScriptBlock
  • jQuery Ajax 实例 全解析
  • System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认
  • 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载
  • Asp.net错误“System.Web.HttpException: 超过了最大请求长度”解决办法
  • SQL中使用update inner join和delete inner join.
  • ASP.NET C# 数字格式化输出
  • js中indexof详解
  • JQuery判断HTML元素是否存在
  • JSON数据格式介绍 .
  • 索引和长度必须引用该字符串内的位置。参数名: length
  • 回发或回调参数无效。在配置中使用 pages enableEventValidation=true/ 或在页面中使用 %@ Page EnableEventValidation=true
  • XML 特殊字符处理
  • c#中break,continue,return,,goto,throw的区别
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • chrome扩展demo1-小时钟
  • Create React App 使用
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • go append函数以及写入
  • Gradle 5.0 正式版发布
  • in typeof instanceof ===这些运算符有什么作用
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Less 日常用法
  • Making An Indicator With Pure CSS
  • ReactNative开发常用的三方模块
  • Vue小说阅读器(仿追书神器)
  • 闭包--闭包之tab栏切换(四)
  • 从输入URL到页面加载发生了什么
  • 关于字符编码你应该知道的事情
  • 后端_ThinkPHP5
  • 聚类分析——Kmeans
  • 聊聊flink的BlobWriter
  • 入手阿里云新服务器的部署NODE
  • 使用权重正则化较少模型过拟合
  • 小程序01:wepy框架整合iview webapp UI
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​力扣解法汇总946-验证栈序列
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一一四)第九章编程练习
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .md即markdown文件的基本常用编写语法
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 使用反射注册事件
  • .NET成年了,然后呢?
  • @Autowired多个相同类型bean装配问题