Yii2:如何使用Ajax获取数组对象?

时间:2018-02-13 20:54:16

标签: javascript php json ajax yii2

我使用Yii2框架已近一年了,现在这是我第一次使用Ajax和数组。我有一个Ajax请求:

$.post("/laboratorio/analitos-grupos/analitos-grupos", json)
    .done(function(data) {
        console.log("Data Loaded: " + data);
        console.log("First object: " + data[0]);       
    });

但控制台显示:

Data Loaded: [{"id":6,"color":"Blue"},{"id":4,"color":"Brown"},{"id":12,"color":"Red"}]
First object: [

我认为它应该显示:

Data Loaded: [{"id":6,"color":"Blue"},{"id":4,"color":"Brown"},{"id":12,"color":"Red"}]
First object: {"id":6,"color":"Blue"}

我如何获得第一个对象? jQuery是在Yii2中使用Ajax的最佳方式吗? 我在Google上找不到完整的例子。

2 个答案:

答案 0 :(得分:3)

您将获得一个JSON字符串而不是一个对象数组。您可以通过在jQuery.post()中的第4个参数中指定json来指定jQuery转换它:

$.post("/laboratorio/analitos-grupos/analitos-grupos", json, null, "json")
    .done(function(data) {
        console.log("Data Loaded: ", data);
        console.log("First object: ", data[0]);       
    });

或者,将回调作为成功函数:

$.post("/laboratorio/analitos-grupos/analitos-grupos", json, function(data) {
    console.log("Data Loaded: ", data);
    console.log("First object: ", data[0]);       
}), "json");

答案 1 :(得分:2)

您需要将传入的JSON string解析为JavaScript对象。

$.post("/laboratorio/analitos-grupos/analitos-grupos", json)
    .done(function(data) {
        console.log("Data Loaded: ", JSON.parse(data));
        console.log("First object: " + JSON.parse(data)[0]);       
    });