如何在AJAX成功函数中获取json数据


How to get json data in AJAX success function

我有一个AJAX调用:

$.ajax({
    type     : "POST",
    dataType : 'JSON',
    url      : "../hotelroomtype",
    data     : form_data,
    success  : function(data){
        var datas = $.parseJSON(data);
        alert(datas['categorys'].categorytype0)
        // var returnedData = $.parseJSON(data);
        // alert(returnedData);
        // $('.x').html(returnedData);
        //
        // for(i=1;i<oldSeason;i++){
        //     $('#roomcategory'+i).html(data.categorytype+i);
        // }
    }
});

服务器返回以下JSON数据到我的js

[{"categorytype0":"<div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div>"},{"categorytype1":"<div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div><div class='panel-body'>adfdfs<'/div>"}]

当我检查警报时,它只显示[object object]。问题在哪里?

编辑:AJAX调用:

 $.ajax({
        type     : "POST",
        url      : "../hotelroomtype",
        data     : form_data,
        success  : function(data){
          dataType : 'JSON',
             for(i=1;i<oldSeason;i++){
                 $('#roomcategory'+i).html(data.categorytype+i);
             }
        }
    });

在这里我得到了结果,但不是正确的方式。我需要结果categorytype明智的。但是它在数组中。我不能单独得到它

这是我的json调用
$data = array();
for($i=0;$i<$cnt;$i++)
{
    array_push($data, array('categorytype'.$i.'' =>$roomtype));
}
    echo json_encode($data, JSON_UNESCAPED_SLASHES);

尝试替换

警报(数据[思想史范畴的].categorytype0)

警报(datas.categorytype0)

我认为你不需要做parseJSON函数,因为你正在使用Javascript,因此数据已经是一个JSON对象。
您可以直接访问每个对象,如:data[x]。然后,您可以像访问关联数组一样访问元素的每个属性。

您已经将数据类型设置为'json',因此参数应该已经是json对象。

同样,json是一个包含单个对象的数组。没有名为"categorys"的元素。

我建议用console.log代替alert。这将以一种更有用的格式在控制台中显示整个对象。