解析JSON ajax变量
我喜欢将json数据转换为JS对象或将其分配给变量解析JSON ajax变量,ajax,json,parsing,Ajax,Json,Parsing,我喜欢将json数据转换为JS对象或将其分配给变量 $.ajaxSetup({ type: "POST", url: "_class/queries.php", dataType:"json" }); var obj; $.ajax({ data: querystring, success: function(data){ console.log(data); alert(data[0].vname); //obj = JSON.par
$.ajaxSetup({
type: "POST",
url: "_class/queries.php",
dataType:"json"
});
var obj;
$.ajax({
data: querystring,
success: function(data){
console.log(data);
alert(data[0].vname);
//obj = JSON.parse(JSON.stringify(data));
obj = data;
console.log(obj[0].vname);//<-- prints the expected property
}
});
console.log("return "+obj);//<-- undefined?
return obj;
}
$.ajaxSetup({
类型:“POST”,
url:“\u class/querys.php”,
数据类型:“json”
});
var-obj;
$.ajax({
数据:查询字符串,
成功:功能(数据){
控制台日志(数据);
警报(数据[0].vname);
//obj=JSON.parse(JSON.stringify(data));
obj=数据;
console.log(obj[0].vname);//变量json
包含已解析的值-服务器返回的数据。
为什么您需要eval
it
obj = data;
足够了。将的type属性设置为json
:
$.ajax({
data: querystring,
dataType: "jsonp",
success: function(json) {
console.log(json);
alert(json[0].vname);
obj = eval("(" + json + ")");
}
});
从手册中:
“json”:将响应计算为json
并返回一个JavaScript对象
jQuery 1.4 JSON数据在
严格的方式;任何格式错误的JSON都是
拒绝,并引发分析错误。
(请参见json.org了解更多关于
正确的JSON格式。)
eval()
此外,AJAX调用是异步的-这意味着AJAX请求是按照通常程序执行的顺序发出的。在代码中,这意味着atreturn obj;
变量的值与AJAX调用从服务器返回数据并分配eval()的返回值后的值不同
调用obj
。解决方案是——在您的情况下,让success函数调用您希望发生的下一个“事件”,或者使用AJAX函数填充另一个事件轮询的变量(最好是全局范围内的变量)(使用计时事件,例如).请向我们展示JSON数据。此外,ajax是异步的,因此,如果返回obj
,它可能还没有设置。您的JSON有效吗?$。如果有效,parseJSON将起作用。Id避免由于性能问题而进行评估。@locrizak它应该有效吗?[{“Id”:“21”,“vname”:“sad”,“name”:“Höbert”,“adrese”:“sdfdsf”,“plz”:“34534”,“ort”:“dfgdsfg”,“email”:“sdfgsdfg”}]thx,也许这就解释了为什么success函数中的所有东西都能很好地工作,即使obj=data;也能工作!但是我如何返回obj?您必须使用基于事件的编程,请参见上面的最后一段。一个解决方案是将async:false作为$.ajax()的参数–thx的提示:)