Jquery getJSON方法分析(一)

简介: 准备工作 ·Customer类 public class Customer{    public int Unid { get; set; }    public string CustomerName { get; set; }    public string Memo { get...

准备工作

·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);
});

 

结果:

Unid1
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);
});

 

结果:

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

 

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

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

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
算法 计算机视觉
使用积分图的自适应二值化算法
使用积分图的自适应二值化算法
|
10月前
|
安全 测试技术 API
探秘驱动软件系统高效协同的高效协同之API接口
在数字化时代,API(应用程序编程接口)作为现代软件开发的核心组件,犹如无形的桥梁,连接不同应用、平台和服务,促进数据和功能自由流动。本文深入探讨API的基本概念、工作原理、核心组成部分及其在现代软件开发中的应用与最佳实践。通过统一数据格式、确保安全性和实施版本控制,API助力高效协同,并在社交媒体、物联网及企业系统中展现出巨大价值。未来,API将朝着智能化方向发展,同时面临并解决安全挑战,推动各行业的数字化转型。
351 6
|
算法 安全 数据安全/隐私保护
TLS 1.3 相比 TLS 1.2 在性能上有哪些提升
TLS 1.3 相比 TLS 1.2 在性能上有哪些提升
478 4
|
7月前
|
传感器 定位技术
会议通知 | 第13届国际移动测量技术大会(MMT2025)二号通知
2025年6月20-22日,第13届国际移动测量技术大会(MMT2025)将在福建厦门举行,由厦门大学空间感知与计算实验室与ISPRS等联合承办。作为全球移动测量技术领域最大国际会议之一,MMT为相关研究、系统及应用提供交流平台。大会主席为王程教授,优秀论文将推荐至《PE&RS》和《The Photogrammetric Record》期刊发表。摘要投稿截止日期为2025年4月1日,详情见官网:https://mmt2025.xmu.edu.cn/2025/。
399 4
|
算法 API 计算机视觉
OpenCV(图像处理)-基于Python-形态学处理-开运算、闭运算、顶帽、黑帽运算
1. 形态学 OpenCV形态学是一种基于OpenCV库的数字图像处理技术,主要用于处理图像的形状、结构和空间关系。它包括一系列图像处理工具和算法,包括膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽等。
337 0
|
11月前
|
人工智能 测试技术 Windows
Windows 竞技场:面向下一代AI Agent的测试集
【10月更文挑战第25天】随着人工智能的发展,大型语言模型(LLMs)在多模态任务中展现出巨大潜力。为解决传统基准测试的局限性,研究人员提出了Windows Agent Arena,一个在真实Windows操作系统中评估AI代理性能的通用环境。该环境包含150多个多样化任务,支持快速并行化评估。研究团队还推出了多模态代理Navi,在Windows领域测试中成功率达到19.5%。尽管存在局限性,Windows Agent Arena仍为AI代理的评估和研究提供了新机遇。
230 3
|
关系型数据库 C语言 PostgreSQL
PostgreSQL服务端开发学习 -- fmgr.h
fmgr按官方的解释就是Postgres函数管理器和函数调用接口,在使用C语言开发PostgreSQL后端应用时,所以与backend交互时必须遵循fmgr.h中定义的一些规范。
|
JavaScript 前端开发 API
深入解析JavaScript Generator 生成器的概念及应用场景
本文讲解了JS生成器的概念和应用场景。生成器是一个可以暂停和恢复执行的函数。利用生成器我们可以很方便地实现自定义的可迭代对象、状态机、惰性计算等,并且还能用它来简化我们的异步操作代码。
876 0
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力
|
异构计算
FPGA入门(7):IP核调用(一)
FPGA入门(7):IP核调用(一)
286 0