我正在使用php并使用json_encode()函数我返回/回显JSON数组。我正在使用jquery ajax并成功检索到这些数据:
[{"id":"1132","city":"Manila Central Post Office","province":"Manila"}]
我在我的Javascript btw上使用此代码:
var val = jQuery.parseJSON(JSON.stringify(result));
当我尝试访问数组上的数据时:
console.info(val.city); // results to undefine
它给了我'未定义'的结果。我试过做for in循环仍然无法正常工作。也许我做错了什么,任何帮助都会很棒。致谢
Ajax代码:
$.ajax({
type: 'POST',
url: path,
cache: false,
data: postData,
success: function (result) {
var val = jQuery.parseJSON(JSON.stringify(result, false, replacer));
var val2 = jQuery.parseJSON(val);
console.info(val2);
console.info(val2.id);
},
error: function (e) {
$("#sys_msg").html(e);
$("#myModal").modal({
show: true,
backdrop: false,
keyboard: true
});
}
});
答案 0 :(得分:1)
val
是一个数组。您需要指定索引,如下所示。
var result = [{ "id": "1132", "city": "Manila Central Post Office", "province": "Manila" }];
var val = jQuery.parseJSON(JSON.stringify(result));
alert(val[0].city);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
此处A
是一个对象数组,因此您无法通过调用val
直接访问city
值。如果返回的数据已使用val.city
进行编码,则只需使用json_encode()
即可。以下代码段显示了如何执行此操作 -
$.parseJSON(data)
&#13;
var temp = '[{"id":"1132","city": "Manila Central Post Office", "province":"Manila"},{"id":"1133","city": "Another Test Post Office", "province":"Test"}]'; //Defined temp as string since the data response returned from the server should also be a json encoded string.
var val = $.parseJSON(temp);
$.each(val, function(index, item) {
var city = item.city;
$('.container').append('City: '+city+'<br/>');
});
&#13;
答案 2 :(得分:0)
请参阅while (<IN>) {
print OUT if (/Target/../^$/) ;
}
,可以轻松解决问题。如果你的ajax代码中没有附加这个,那么返回的响应将是一个json字符串,在这种情况下,你只需要用dataType:"json"
或jQuery.parseJSON()
解析它。
因此,您可以将JSON.parse()
添加到ajax中,或者只是解析它。
dataType
使用success: function(result){
var val = jQuery.parseJSON(result); // or JSON.parse(result);
console.info(val[0].city);
},
:
dataType
答案 3 :(得分:0)
您不必stringify
然后再将其解析为JSON。您只需在AJAX中添加dataType: "json"
即可。
$.ajax({
type: 'POST',
url: path,
cache: false,
data: postData,
dataType: "json",
success: function (result) {
console.info(result);
console.info(result.id);
},
error: function (e) {
$("#sys_msg").html(JSON.stringify(e));
$("#myModal").modal({
show: true,
backdrop: false,
keyboard: true
});
}
});