将数据推送到json数组中

将数据推送到json数组中,json,yui,Json,Yui,我正在尝试使用YUI显示一个表。使用以下示例 YAHOO.example.Data = { bookorders: [ {id:"po-0167", date:new Date(1980, 2, 24), quantity:1, amount:4, title:"A Book About Nothing"}, {id:"po-0783", date:new Date("January 3, 1983"), quantity:null

我正在尝试使用YUI显示一个表。使用以下示例

YAHOO.example.Data = {
        bookorders: [
            {id:"po-0167", date:new Date(1980, 2, 24), quantity:1, amount:4, title:"A Book About Nothing"},
            {id:"po-0783", date:new Date("January 3, 1983"), quantity:null, amount:12.12345, title:"The Meaning of Life"},
            {id:"po-0297", date:new Date(1978, 11, 12), quantity:12, amount:1.25, title:"This Book Was Meant to Be Read Aloud"},
            {id:"po-1482", date:new Date("March 11, 1985"), quantity:6, amount:3.5, title:"Read Me Twice"}
        ]
    }

    YAHOO.example.Basic = function() {
        var myColumnDefs = [
            {key:"id", sortable:true, resizeable:true},
            {key:"date", formatter:YAHOO.widget.DataTable.formatDate, sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC},resizeable:true},
            {key:"quantity", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true, resizeable:true},
            {key:"amount", formatter:YAHOO.widget.DataTable.formatCurrency, sortable:true, resizeable:true},
            {key:"title", sortable:true, resizeable:true}
        ];

        var myDataSource = new YAHOO.util.DataSource(YAHOO.example.Data.bookorders);
        myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
        myDataSource.responseSchema = {
            fields: ["id","date","quantity","amount","title"]
        };

        var myDataTable = new YAHOO.widget.DataTable("basic",
                myColumnDefs, myDataSource, {caption:"DataTable Caption"});

        return {
            oDS: myDataSource,
            oDT: myDataTable
        };
    }();
但是我没有使用bookorders数据,而是使用esri.tasks.QueryTask从数据库查询结果

因此,我需要迭代数据来填充bookorders json数组

for (var i=0, il=results_books.features.length; i<il; i++) {
     var featureAttributes = results_books.features[i].attributes;
         var string = " id : \"" + results_books.features[i].attributes[0] + "\",";
         var string = string + " date : \"" + results_books.features[i].attributes[1] + "\",";
         var string = string + " quantity: \"" + results_books.features[i].attributes[2] + "\",";
         var string = string + " amount: \"" + results_books.features[i].attributes[3] + "\",";
         var string = string + " title: \"" + results_books.features[i].attributes[4] + "\"";

}

for(var i=0,il=results\u books.features.length;i只需使用对象文字,而不是构建字符串:

for (var i=0, il=results_books.features.length; i<il; i++) {
     var featureAttributes = results_books.features[i].attributes;
     var book = {
        "id" : featureAttributes[0],
        "date" : featureAttributes[1],
        "quantity" : featureAttributes[2],
        "amount" : featureAttributes[3],
        "title" : featureAttributes[4]
      };
      // push into array   
}

for(var i=0,il=results\u books.features.length;i只需使用对象文字,而不是构建字符串:

for (var i=0, il=results_books.features.length; i<il; i++) {
     var featureAttributes = results_books.features[i].attributes;
     var book = {
        "id" : featureAttributes[0],
        "date" : featureAttributes[1],
        "quantity" : featureAttributes[2],
        "amount" : featureAttributes[3],
        "title" : featureAttributes[4]
      };
      // push into array   
}

for(var i=0,il=results\u books.features.length;iis可以安全地说我可以实例化bookorders数组,然后使用连接字符串并执行此操作'bookorders.push(s)'可以安全地说我可以实例化bookorders数组,然后使用连接字符串并执行此操作'bookorders.push(s)'