Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解析JSON对象?(从服务器端到客户端…javascript)_Javascript_Jquery_Asp.net_Json - Fatal编程技术网

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

如何解析JSON对象?(从服务器端到客户端…javascript),javascript,jquery,asp.net,json,Javascript,Jquery,Asp.net,Json,我有一个与服务器端Web方法交互的jquery。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; } pub

我有一个与服务器端Web方法交互的jquery。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] + '*' };   
    }
}
我使用了断点并在客户端进行了检查,实际上它正在获取返回值。但是,我不确定解析这些值并将它们存储在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);

 }
现在我如何解析“数据”??有评估功能吗?还是解析函数

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

更新:-

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;

}
我尝试在javascript端执行此操作:-

var returnedstring = (data.d);
var member = data.d.id;
var Hp = data.d.HPCode;
但是,当我使用断点并将鼠标悬停在断点上时,我会将member和HP设置为未定义,但是returnedstring具有所有正确的值。。。有什么想法吗

解决方案(我无法找出答案中建议的其他方法,但这对我很有用):-

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;

}

因为您使用的是
数据类型:“json”
数据已经从json字符串中解析出来。这就是为什么您能够访问Javascript中的
data.d

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

console.log(data.d.HPCode);

因为您使用的是
数据类型:“json”
数据已经从json字符串中解析出来。这就是为什么您能够访问Javascript中的
data.d

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

console.log(data.d.HPCode);

可能还值得一提的是,代码没有正确地发送方法参数。cool。正如你所看到的,我对这项技术非常陌生。那么如何在javascript端获得4个变量呢。。这样,var memID=memID的返回值var HPCode=的返回值HPcode@Philosophia无需调用
JSON.stringify()
——只要给jQuery一个普通对象,它就会理解。(按照现在的方式,字符串化对象看起来像一个无效的查询字符串。)@Pointy:jQuery将使用其典型的URL样式编码,如果您直接发送对象。NETMVC将正确绑定这里使用的简单值,但如果数据变得非常复杂(如带有数组的属性),则可能会导致问题
JSON.stringify()
将允许它以模型绑定器可以理解的方式发送非常复杂的对象。@Physholia:不,更像是
var HPCode=data.d.HPCode
。我提供的代码会将结果记录到浏览器控制台,这在您尝试了解数据是如何出现的时候可能很有用。可能还值得一提的是,代码没有正确地发送方法参数。酷。正如你所看到的,我对这项技术非常陌生。那么如何在javascript端获得4个变量呢。。这样,var memID=memID的返回值var HPCode=的返回值HPcode@Philosophia无需调用
JSON.stringify()
——只要给jQuery一个普通对象,它就会理解。(按照现在的方式,字符串化对象看起来像一个无效的查询字符串。)@Pointy:jQuery将使用其典型的URL样式编码,如果您直接发送对象。NETMVC将正确绑定这里使用的简单值,但如果数据变得非常复杂(如带有数组的属性),则可能会导致问题
JSON.stringify()
将允许它以模型绑定器可以理解的方式发送非常复杂的对象。@Physholia:不,更像是
var HPCode=data.d.HPCode
。我提供的代码会将结果记录到浏览器控制台,当您尝试了解数据是如何出现的时,这可能会很有用。使用Chrome/Firefox并在成功回调函数中运行
console.log(data)
。console.log(data)两者都不起作用,没有错误消息,还有chrome和firefox——我在IE中通过confirm(data.d)命令得到的更新消息,也没有显示。console.log(data)不起作用。。。。你打开JavaScript控制台查看那里的输出了吗?是的,它只有:-[MAIN]连接滑块。js:392[MAIN]请求加载模块滑块。js:392[MAIN]请求加载模块使用Chrome/Firefox并在成功回调函数内运行
console.log(数据)
。console.log(数据)也不适用,没有错误消息,也适用于chrome和firefox-我使用IE的confirm(data.d)命令得到的更新消息,该消息也没有显示。console.log(data)不起作用。。。。您打开JavaScript控制台查看那里的输出了吗?是的,这就是它的全部功能:-[MAIN]连接滑块。js:392[MAIN]请求加载模块滑块。js:392[MAIN]请求加载模块