我正在使用JQuery的getJSON()从我的Web服务器请求JSON。然后,我想解析响应。 JSON响应的格式如下:
{
"responseStatus": "200",
"responseData": {
"resultText": "Hello"
},
"originalText": "hi"
}
我的JQuery代码:
$.getJSON(url, function (json) {
$.each(json, function (i, result) {
alert(result.resultText);
});
});
我面临的问题是我连续收到三个警告窗口:“Undefined”,“Hello”和“Undefined”。我只想获得并显示resultText的单个值。为什么我也收到“未定义”?
谢谢!
答案 0 :(得分:2)
我认为你可以做到:
$.getJSON(url,function(json){
alert(json.responseData.resultText);
});
答案 1 :(得分:2)
responseData
只是一个简单的对象为什么你使用$.each
循环只是尝试
$.getJSON(url,function(json){
alert(json.responseData.resultText);
});
您正在收到三个警报,因为您循环遍历整个json对象,该对象具有3个属性
$.getJSON(url, function (json) {
$.each(json, function (i, result) {
//In this loop result will point to each of the properties
//of json object and only responseData has resultText property
//so you will get proper alert other wise for other properties
//it is undefined.
alert(result.resultText);
});
});
答案 2 :(得分:2)
当您遍历json对象时,您将首先拥有对象“responseStatus”。如果您尝试执行responseStatus.resultText,则未定义,因为responseStatus没有该属性。 “originalText”也是如此
为了看到单个结果,只需使用:
$.getJSON(url, function (json) {
alert(json.responseData.resultText);
});
答案 3 :(得分:2)
尝试这个(你可以直接做)
$.getJSON(url,function(json){
alert(json.responseData.resultText);
});
答案 4 :(得分:2)
你正在迭代整个回复...这意味着你正在点击
responseStatus
responseData
originalText
但是,仅您的responseData
媒体资源具有resultText
属性。