请教json相关问题

做了一个jquery+json的例子,但有些地方不清楚,请高手指点.

业面上我放置了两个html button,一个读取后台JSONHandler.ashx的方法获取json对象

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
Code
function loadJSON1() 
{
$.getJSON(
'JSONHandler.ashx', { }, loaded1);
}

function loaded1(result) 
{
$.each(result,
function(i)
  {$(
'#list').append('<li>[[Get方式]]Name:'+result[i].name+'-Age:'+result[i].age + '</li>');})
}

function loadJSON2(){            
            $.ajax({
                type: 
'post',
                url: 
'jqtest.aspx/LoadData',
                data: 
"{}",                
                contentType: 
"application/json; charset=utf-8",
                dataType: 
"json",                
                cache: 
false,
                ifModified: 
true,
                success: loaded2
            })
        }

function loaded2(result) 
{
   result 
= JOSNtoObject(result.d);
   $.each(result,
        
function(i) {
            $(
'#list').append('<li>[[Post方式json.js]]Name:' + result[i].name + '---Age:' + result[i].age + '</li>');})
}

function JOSNtoObject(jsonstring) {
            eval(
"var jsonObject=" + jsonstring);
            
return jsonObject;            
        }    

 

 

后台方法分别为:

JSONHandler.ashx

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<%@ WebHandler Language="C#" Class="JSONHandler" %>

using System;
using System.Web;
using System.Web.Services;

public class JSONHandler : IHttpHandler {
    
    public 
void ProcessRequest (HttpContext context) {
        context.Response.ContentType 
= "text/plain";
        string data 
= "[{name:'ants',age:24},{name:'lele',age:23}]";
        context.Response.Write(data);
    }
 
    public bool IsReusable {
        get {
            
return false;
        }
    }
}

 

jqtest.aspx

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.Services;

public partial class JQTest_jqtest : System.Web.UI.Page
{
    protected 
void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public static string LoadData()
    {
        string data 
= "[{\"name\":\"ants\",\"age\":24},{\"name\":\"" + Guid.NewGuid().ToString() + "\",\"age\":25}]";
        
return data;        
    }
}

 

问题是:调用业面jqtest.aspx的方法,为什么在将返回客户端字符串转换为json 对象时,(客户端loaded2方法)需取result.d呢?是不是跟Content-Type和dataType 的设置有关呢?

 

转载于:https://www.cnblogs.com/heters/archive/2008/12/25/1362227.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值