将json输出分配给数组var

时间:2014-05-19 10:26:36

标签: javascript arrays json getjson

我是一个使用json的jquery函数。 json输出,我想放入一个数组,然后我将使用数组填充表(填充表的代码很复杂,我将省略它)。下面的代码不起作用,但如果我直接将json输出分配给数组(json输出),它就可以工作。

服务器端(table.menus.php):

Editor::inst( $db, 'menus', 'id' )
    ->fields(
        Field::inst( 'seccion' )
            ->validator( 'Validate::notEmpty' ),
        Field::inst( 'descripcion' )
            ->validator( 'Validate::notEmpty' ),
        Field::inst( 'precio' )
            ->validator( 'Validate::notEmpty' )
    )
    ->process( $_POST )
    ->json();

JS:

$( document ).ready(function() {
    var data = [];
    data = $.getJSON("table.menus.php", function(json) {
        data = json;
    });

如果使用上面的代码,html代码可以工作:

data = json;

我分配数据数组变量(从firebug复制并粘贴json输出),如下所示:

data = [{
    "DT_RowId": "row_1",
    "seccion": "Primeros",
    "descripcion": "paella valenciana con bogavante y cigalas",
    "precio": "189"
}, {
    "DT_RowId": "row_2",
    "seccion": "Segundos",
    "descripcion": "cocido completo",
    "precio": "99"
}, {
    "DT_RowId": "row_3",
    "seccion": "Primeros",
    "descripcion": "Raviolis al presto",
    "precio": "65"
}, {
    "DT_RowId": "row_4",
    "seccion": "Segundos",
    "descripcion": "Chuleton de buey",
    "precio": "60"
}];

1 个答案:

答案 0 :(得分:0)

问题是JSON输出给出了一个对象(数组),而且我真的需要处理变量。解决方案非常简单,只需将JSON输出分配给变量,现在就可以了!

$(document).ready(function(){
    $.getJSON("../php/platos.php", function(data){
    for (var i=0, len=data.length; i < len; i++) {
        console.log(data[i]);
    }
    data = data['data']; //    assing array output (object) to var. easy and work!