Uncaught TypeError: Cannot use 'in' operator JSON
Uncaught TypeError: Cannot use 'in' operator JSON
输出 PHP 与下面的 json_encode :
{"data_1":"Data 1","data_2":"Data 2"}
在 jQuery 我有代码 :
$.ajax({
url : 'process.php',
dateType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data) {
$.each(data, function(key, value) {
alert(key+ " " + value);
});
}
});
但是运行的时候报错
Uncaught TypeError: Cannot use 'in' operator to search for '36' in....
为什么?以及如何修复它?
我认为您拥有的 json 数据未转换为 json object
使用 data = JSON.parse(data);
然后尝试 each
循环
或
从 php 发送 application/json header,例如 header("Content-Type:application/json");
。如果发送正确的 json header 那么浏览器会为你做解析。
因此您的最终代码将类似于
$.ajax({
url : 'process.php',
dateType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data){
data = JSON.parse(data);
$.each(data, function(key, value) {
alert(key+ " " + value);
});
}
});
或(在php)
header("Content-Type:application/json");
$data = array( "data_1" => "Data 1", "data_2" => "Data 2");
echo json_encode($data);
输出 PHP 与下面的 json_encode :
{"data_1":"Data 1","data_2":"Data 2"}
在 jQuery 我有代码 :
$.ajax({
url : 'process.php',
dateType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data) {
$.each(data, function(key, value) {
alert(key+ " " + value);
});
}
});
但是运行的时候报错
Uncaught TypeError: Cannot use 'in' operator to search for '36' in....
为什么?以及如何修复它?
我认为您拥有的 json 数据未转换为 json object
使用 data = JSON.parse(data);
然后尝试 each
循环
或
从 php 发送 application/json header,例如 header("Content-Type:application/json");
。如果发送正确的 json header 那么浏览器会为你做解析。
因此您的最终代码将类似于
$.ajax({
url : 'process.php',
dateType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data){
data = JSON.parse(data);
$.each(data, function(key, value) {
alert(key+ " " + value);
});
}
});
或(在php)
header("Content-Type:application/json");
$data = array( "data_1" => "Data 1", "data_2" => "Data 2");
echo json_encode($data);