我知道这个问题已被提出,但我无法找到我想要的答案。
我试图在JSON data
响应之后循环我以ajax
格式获得的数据。
我的Javascript代码是:
function ajaxMe(){
$(function(){
$.ajax({
type : 'GET',
url : 's-test.php'
}).done(function(data){
values = [data];
alert(data)
})
});
}
成功收到values
变量中的数据后,我尝试使用console.log(JSON.stringify(values))
中的console
进行打印,结果为:
["\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.320850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.420850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.520850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.620850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.720850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.820850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-0.920850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-1.320850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-2.320850\" , \"name\" : \"my corporation\"},\r\n {\"lat\" : \"51.508742\", \"ln\" : \"-3.320850\" , \"name\" : \"my corporation\"}\r\n"]
而不是
[{"lat" : "51.508742", "ln" : "-0.320850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-0.420850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-0.520850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-0.620850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-0.720850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-0.820850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-0.920850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-1.320850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-2.320850" , "name" : "my corporation"},
{"lat" : "51.508742", "ln" : "-3.320850" , "name" : "my corporation"}]
使用object
时无法循环显示此forEach
:
values.forEach(function(v, i){
alert(i);
});
它是如何工作的。 谢谢。
答案 0 :(得分:5)
首先在jquery ajax代码中添加一行简单的行
dataType: 'json'
$.ajax({
type: 'GET',
url: 's-test.php',
dataType: 'json',
success: function (data) {
$.each(data, function (key, value) {
alert(value.lat);
});
}
});
答案 1 :(得分:2)
试试这个:
function ajaxMe(){
$.ajax({
method:"GET",
url : 's-test.php',
success:function(data){
var obj = $.parseJSON(data);
$.each(obj, function (key, value){
alert(value.lat);
alert(value.ln);
alert(value.name);
});
}
});
}
答案 2 :(得分:1)
当您回显PHP脚本中的数据时,请使用json_encode(您的数据)。这将返回一个JSON对象。然后在AJAX请求中设置' dataType:" json"'。然后,您就可以使用console.log(数据)。
$.ajax({
type : 'GET',
url : 's-test.php'
dataType: 'json',
}).done(function(data){
values = [data];
alert(data)
})
然后,您将能够使用for循环遍历结果,如下所示:
for(var i = 0; i < data.legnth; i++){
console.log(data[i]);
}