这是我的AJAX调用响应,采用数组格式
[1,2,3,4,5,6]
success: function(outputfromserver) {
$.each(outputfromserver, function(index, el)
{
});
我们如何访问outputfromserver的所有值?
表示outputfromserver Zeroth值为1,第二个元素为2,-----依此类推
答案 0 :(得分:11)
了解您的AJAX请求是什么样的。我建议使用$ .ajax()并将dataType指定为JSON,或者使用$ .getJSON()。
这是一个演示$ .ajax()的示例,并向您展示如何访问数组中返回的值。
$.ajax({
url: 'test.json', // returns "[1,2,3,4,5,6]"
dataType: 'json', // jQuery will parse the response as JSON
success: function (outputfromserver) {
// outputfromserver is an array in this case
// just access it like one
alert(outputfromserver[0]); // alert the 0th value
// let's iterate through the returned values
// for loops are good for that, $.each() is fine too
// but unnecessary here
for (var i = 0; i < outputfromserver.length; i++) {
// outputfromserver[i] can be used to get each value
}
}
});
现在,如果您坚持使用$ .each,则以下内容适用于成功选项。
success: function (outputfromserver) {
$.each(outputfromserver, function(index, el) {
// index is your 0-based array index
// el is your value
// for example
alert("element at " + index + ": " + el); // will alert each value
});
}
随时提出任何问题!
答案 1 :(得分:1)
该数组是一个有效的JSON字符串,您需要使用JSON解析器解析它。
success: function(outputfromserver) {
var data = JSON.parse(outputfromserver);
$.each(data, function(index, el) {
// Do your stuff
});
},
...
答案 2 :(得分:1)
例如这样:
// Loop through all values in outputfromserver
for (var index in outputfromserver) {
// Show value in alert dialog:
alert( outputfromserver[index] );
}
这样你就可以获得数组第一维的值,
以上for..loop
将获得如下值:
// Sample values in array, case: Indexed array
outputfromserver[0];
outputfromserver[1];
outputfromserver[2];
// So on until end of world... or end of array.. whichever comes first.
outputfromserver[...];
但是,以这种方式实现时,通过使用for ( index in array )
,我们不仅可以获取索引1,2,3,4,...
键,还可以获取与命名索引相关的值:
// Sample values in array, case: accosiated/mixed array
outputfromserver["name"];
outputfromserver["phone"];
outputfromserver[37];
outputfromserver[37];
outputfromserver["myindex"];
// So on until end of world... or end of array.. whichever comes first.
outputfromserver[...];
简而言之,数组可以包含索引值和/或名称关联值,这无关紧要,数组中的每个值仍然会被处理。
然后你可以添加嵌套的for (...)
循环或者使用递归函数来遍历所有的值。
多维将是这样的:
// Sample values in array, case: indexed multidimensional array
outputfromserver[0][0];
outputfromserver[0][1];
outputfromserver[1][0];
outputfromserver[1][...];
outputfromserver[...][...];
如果服务器返回JSON编码的字符串,您可以通过以下方式将其转换为javascript对象:
try {
// Try to convert JSON string with jQuery:
serveroutputobject = $.parseJSON(outputfromserver);
} catch (e) {
// Conversion failed, result is not JSON encoded string
serveroutputobject = null;
}
// Check if object converted successfully:
if ( serveroutputobject !== null ) {
// Loop through all values in outputfromserver
for (var index in serveroutputobject) {
// Append value inside <div id="results">:
$('#results').append( serveroutputobject[index] + "<br/>" );
}
}
// In my own projects I also use this part if server can return normal text too:
// This way if server returned array we parse it and if server returns text we display it.
else {
$('#results').html( outputfromserver );
}
更多信息here
答案 3 :(得分:0)
$.ajax({
type : "POST",
dataType: "json",
url : url,
data:dataString,
success: function(return_data,textStatus) {
temperature.innerText=return_data.temp;
// OR
**temperature.innerText=return_data['temp'];**
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error while accessing api [ "+url+"<br>"+textStatus+","+errorThrown+" ]"); return false;
}
});