未捕获的类型错误:无法使用“in”运算符 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);
        });
    }
});

但是当运行时它显示错误

未捕获的类型错误: 无法使用"in"运算符在...中搜索"36"。

为什么?以及如何解决它?

我认为您拥有的 JSON 数据没有转换为 JSON object

为此,请使用data = JSON.parse(data);然后尝试each循环

从PHP发送应用程序/json标头,如header("Content-Type:application/json");。如果发送了正确的 json 标头,则浏览器将为您进行解析。

所以你的最终代码将看起来像

$.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);
        });
    }
}); 

或(以菲律宾语为单位)

header("Content-Type:application/json");
$data = array( "data_1" => "Data 1", "data_2" => "Data 2"); 
echo json_encode($data);