zoukankan      html  css  js  c++  java
  • Jquery中getJSON在asp.net中的使用说明

    准备工作
    ·Customer类
    public class Customer 

    public int Unid { getset; } 
    public string CustomerName { getset; } 
    public string Memo { getset; } 
    public string Other { getset; } 
    (一)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")

    这点很重要






     

  • 相关阅读:
    转载:渗透利器-余弦
    搜索引擎?
    Gartner:用自适应安全架构来应对高级定向攻击
    内网渗透测试思路-FREEBUF
    渗透测试常规思路分析-FREEBUF
    SQLMAP使用笔记
    如何打造一款优秀的产品管理系统?
    阿里的钉钉能干掉腾讯的微信么?
    下一个亿万市场:企业级SaaS服务谁能独领风骚
    如何注册iClap账号?
  • 原文地址:https://www.cnblogs.com/greatandforever/p/2015641.html
Copyright © 2011-2022 走看看