如何解析JSON对象?(从服务器端到客户端..javascript)

How to parse a JSON object ? (From server-side to client-side...javascript)

本文关键字:服务器端 客户端 javascript 何解析 JSON 对象      更新时间:2023-09-26

我有一个jquery与服务器端Web方法交互。Web方法接受来自jquery的字符串"memID",并基于它执行SQL查询。然后我创建一个类:-

public class Member
{
    // Objects of Member. //
    public string id { get; set; }
    public string HPCode { get; set; }
    public string OPfromDate { get; set; }
    public string OPthruDate { get; set; }

    public Member(string ID, List<string> hpCode, List<string> opfromDate, List<string> opthruDate)
    {
        id = ID;
        for (int j = 0; j < hpCode.Count; j++){ HPCode = HPCode + (hpCode)[j] + '*' };
        for (int j = 0; j < opfromDate.Count; j++){OPfromDate = OPfromDate + (opfromDate)[j] + '*' };
        for (int j = 0; j < opthruDate.Count; j++){OPthruDate = OPthruDate+ (opthruDate)[j] + '*' };   
    }
}

这个类用于将SQL查询的结果返回到客户端:-

return JsonConvert.SerializeObject(member);

我使用了断点并在客户端进行了检查,实际上它正在获取返回值。然而,我不确定解析这些值并将它们存储在javascript端的变量中的最佳方式是什么,这样我就可以将它们用于客户端功能。

// Ajax function that sends member ID from client side to server side without a post back. 
function ajax() 
{
    $.ajax 
    ({
        url: 'Default.aspx/MyMethod',
        type: 'POST',
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify({ memID: mem_ID }),
        success: onSuccess, 
        fail : onFail
   });
}

// If client-to-server communication is successful. 
function onSuccess(data) 
 {
     confirm(data.d);
     var returnedstring = (data.d);
     var jsondata = $.parseJSON(data.d);
 }

现在我该如何解析"数据"??有eval函数吗?还是解析函数?

有人有网络示例吗?在此之前,我只向客户端传递1个值,所以很容易获得,现在我对多个值感到困惑。

更新:-

我试着在我的javascript端这样做:-

var returnedstring = (data.d);
var member = data.d.id;
var Hp = data.d.HPCode;

然而,当我使用断点并用鼠标悬停在它们上面时,我会得到未定义的成员和HP,但是返回的字符串具有所有正确的值。。。知道吗?

解决方案(我不知道答案中建议的其他方法,但这对我有效):-

function onSuccess(data) 
 {
     // stores entire return in one string.
     var returnedstring = (data.d);
     // parses json returned data
     var jsondata = $.parseJSON(data.d);
     var member = jsondata.id;
     var HpCode = jsondata.HPCode;
}

因为您使用的是dataType: "json",所以data已经从JSON字符串中解析出来。这就是为什么您能够在Javascript中访问data.d

要访问成员,您可以执行以下操作:

console.log(data.d.HPCode);