这是我的 AJAX 调用响应,它是数组格式
[1,2,3,4,5,6]
success: function(outputfromserver) {
$.each(outputfromserver, function(index, el)
{
});
我们如何从服务器访问输出的所有值?
意味着 outputfromserver 第零个值为 1 ,第二个元素是 2 ,------依此类推
这是我的 AJAX 调用响应,它是数组格式
[1,2,3,4,5,6]
success: function(outputfromserver) {
$.each(outputfromserver, function(index, el)
{
});
我们如何从服务器访问输出的所有值?
意味着 outputfromserver 第零个值为 1 ,第二个元素是 2 ,------依此类推
了解您的 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
});
}
随意问任何问题!
该数组是一个有效的 JSON 字符串,您需要使用 JSON 解析器对其进行解析。
success: function(outputfromserver) {
var data = JSON.parse(outputfromserver);
$.each(data, function(index, el) {
// Do your stuff
});
},
...
例如这种方式:
// 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 );
}
更多信息在这里
$.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;
}
});