Jquery中getJSON在asp.net中的使用说明


Posted in Javascript onMarch 10, 2011

准备工作
·Customer类

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

(一)ashx

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

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

·通过getJSON向ashx请求数据。返回的数据为JSON对象。
(二)ashx文件,但返回的是实体集合
Customer customer = new Customer 
{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"}; 
Customer customer2 = new Customer 
{ Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" }; 
List<Customer> _list = new List<Customer>(); 
_list.Add(customer); 
_list.Add(customer2); 
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list); 
context.Response.Write(strJson);

function GetCustomerList() { 
$.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); 
}); 
}

 (三)请求aspx文件
·cs文件
protected void Page_Load(object sender, EventArgs e) 
{ 
Customer customer = new Customer 
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" }; 
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer); 
Response.Write(strJson); 
}

·Aspx文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Json_1.aspx.cs"
Inherits="webdata_Json_1" %>

前台文件只保留Page声明,其它全部删除。

·js文件

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

这个部分与请求ashx文件时相同。
请求实体集合时,与ashx时相同,这里不做重复。
(四)请求文本文件
文本文件提供json字符串,由$.getJSON得到json对象。
·文本文件
{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"}
文本文件提供json串,对于json的组成格式,请参见其它文档。对于这一实体json,会被忽略空行与空格。
function GetCustomer_txt() { 
$.getJSON( 
"webdata/Json_1.txt", 
function(data) { 
var tt = ""; 
$.each(data, function(k, v) { 
tt += k + ":" + v + "<br/>"; 
}) 
$("#divmessage").html(tt); 
}); 
}

解析的方法与其它的相同。

对于多行的如下:
文本:

[ 
{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"}, 
{Unid:2,CustomerName:"吴用",Memo:"天机星",Other:"智多星"} 
]

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

与其它的相同。
(五)带参数ajax请求
以ashx为例子,按客户id来请求客户。
·Ashx文件
if(context.Request["iUnid"]==null) 
return; 
context.Response.ContentType = "text/plain"; 
Customer customer = new Customer 
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" }; 
Customer customer2 = new Customer 
{ Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" }; 
List<Customer> _list = new List<Customer>(); 
_list.Add(customer); 
_list.Add(customer2); int iCustomerId =Convert.ToInt32(context.Request["iUnid"]); 
var cus = from q in _list 
where q.Unid == iCustomerId 
select q; 
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(cus); 
context.Response.Write(strJson);

·ajax请求
function GetCustomer_AshxWithPara() { 
$.getJSON( 
"webdata/Json_2.ashx", 
{ iUnid: 1 }, 
function(data) { 
var tt = ""; 
$.each(data, function(k, v) { 
$.each(v, function(kk, vv) { 
tt += kk + ":" + vv + "<br/>"; 
}); 
}); 
$("#divmessage").html(tt); 
}); 
}

其中参数也是以k/v对格式发出。请求返回的可以看到:在服务端以Customer列表集合返回。

在jquery库中,getJSON其实是调用的:Query.get(url, data, callback, "json")
这点很重要。

Javascript 相关文章推荐
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
Jun 23 Javascript
Javascript学习笔记之数组的遍历和 length 属性
Nov 23 Javascript
JQuery实现展开关闭层的方法
Feb 17 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
小程序api实现promise封装过程解析
Nov 21 Javascript
JQuery中的$.getJSON 使用说明
Mar 10 #Javascript
基于jquery的地址栏射击游戏代码
Mar 10 #Javascript
基于jquery的无缝循环新闻列表插件
Mar 07 #Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
Mar 07 #Javascript
jQuery总体架构的理解分析
Mar 07 #Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
Mar 06 #Javascript
js中将具有数字属性名的对象转换为数组
Mar 06 #Javascript
You might like
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
利用php输出不同的心形图案
2016/04/22 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
python3中的md5加密实例
2018/05/29 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Python如何定义有可选参数的元类
2020/07/31 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
酒店秘书求职信范文
2014/02/17 职场文书
售房协议书
2014/08/19 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2019军训心得体会
2019/06/27 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL