WWW*_*RDS 7 javascript ajax jquery json
我正在使用jQuery 1.4.2创建一个ajax应用程序,我尝试使用get(),post()和ajax()方法本身.我的php服务返回:
[{"k":"label0","v":0.5},{"k":"label1","v":99.43},{"k":"label2","v":2.46},{"k":"label3","v":46.29},{"status":"OK"}]
Run Code Online (Sandbox Code Playgroud)
在我的成功回调中,我尝试访问json.status和json [0] [0],但它总是返回"undefined".我究竟做错了什么?
function getSysinfo(source) {
var json = null;
$.ajax({
url: source,
type: 'POST',
dataType: 'json',
success: function (data) {
json = eval("(" + data + ")");
$('#data').html(json.status);
alert(json[0][0]);
refreshChart(json);
},
error: function (request, status, error) {
alert("REQUEST:\t" + request + "\nSTATUS:\t" + status +
"\nERROR:\t" + error);
}
});
return json;
}
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索这几天.我如何访问返回的数据?任何帮助,将不胜感激.
要访问该状态值,您需要:
data[4].status
Run Code Online (Sandbox Code Playgroud)
这是因为它是一个存储在数组中第五个元素中的对象,它是对象的status一个属性.
您的JSON数据如下所示:
[
{
"k": "label0",
"v": 0.5
},
{
"k": "label1",
"v": 99.43
},
{
"k": "label2",
"v": 2.46
},
{
"k": "label3",
"v": 46.29
},
{
"status": "OK"
}
]
Run Code Online (Sandbox Code Playgroud)
你必须阅读你的状态
json[4].status
Run Code Online (Sandbox Code Playgroud)
与4作为神奇数或length-1-不希望的.我会考虑修改你的服务器响应更有用的东西,如下所示:
{
"status": "OK",
"entries": [ ... ] // add your data here
}
Run Code Online (Sandbox Code Playgroud)
在你的成功回调尝试:
var parsed = $.parseJSON(data);
$.each(parsed, function (i, jsondata) {
alert( jsondata.k );
alert( jsondata.v );
});
Run Code Online (Sandbox Code Playgroud)
你不需要eval("("+data+")");. jQuery 会自动为您解析 JSON 响应,因为您指定了dataType:'json'
来自数据类型的 jQuery 文档:
“json”:将响应评估为 JSON 并返回一个 JavaScript 对象。在 jQuery 1.4 中,JSON 数据以严格的方式解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。(有关正确 JSON 格式的更多信息,请参阅 json.org。)
| 归档时间: |
|
| 查看次数: |
38960 次 |
| 最近记录: |