2015-12-05 68 views
0

我正在写一些代码来生成数据网格形式JSON数据。我知道有多个免费库可用于做同样的事情。 下面是我的一段代码动态访问JSON对象没有键

var columnDefs=[ 
    {title:"Sr.No",fieldName:"srno",dataType:"int",isHidden:true}, 
    {title:"Model No.",fieldName:"modelId",dataType:"int"}, 
    {title:"Name",fieldName:"name",dataType:"string"}, 
    {title:"Brand",fieldName:"brandName",dataType:"string"}, 
    {title:"Price",fieldName:"Price",dataType:"double"}, 
]; 
var rowData=[ 
    {srno:"P1",modelId:"1",name:"Moto G3",brandName:"Motorola",price:"13000"}, 
    {srno:"P2",modelId:"2",name:"Asus ZenFone 2",brandName:"Asus",price:"13000"}, 
    {srno:"P3",modelId:"3",name:"Lenovo K3 Note",brandName:"Lenovo",price:"9900"}, 
    {srno:"P4",modelId:"4",name:"Moto E2 4g",brandName:"Motorola",price:"6999"}, 
    {srno:"P5",modelId:"5",name:"Nexus 5x",brandName:"LG",price:"24000"}, 
    {srno:"P6",modelId:"6",name:"Apple iPhone 5s",brandName:"Apple",price:"56000"}, 
]; 
var gridOptions={ 
    title:"Demo Grid", 
    columnDefs:columnDefs, 
    rowData:rowData 
}; 

document.addEventListener("DOMContentLoaded", function() { 
    debugger; 
    createDataGrid('#myGrid', gridOptions); 
}); 



//library 
function createDataGrid(div,gridDef){ 
    var gridTitle=gridDef.title 
    var titleDiv='<div>'+gridTitle+'</div>'; 
    $(div).append(titleDiv); 
    var table="<table id='tab1' border='1'></table>"; 
    $(div).append(table); 
    $("#tab1").append("<tr id='tbheadres'></tr>"); 
    //render column headers 
    $.each(gridDef.columnDefs,function(index,value){ 
     var columnName = gridDef.columnDefs[index].title; 
     var columnHeader="<th>"+columnName+"</th>" 
     $("#tbheadres").append(columnHeader); 
    }); 

    $.each(gridDef.rowData,function(i1,val1){ 
     var rowId="row_"+i1; 
     $("#tab1").append("<tr id="+rowId+"></tr>"); 
     $.each(gridDef.columnDefs,function(index,value){ 
      var field=gridDef.columnDefs[index].fieldName; 
      var c1=gridDef.rowData[i1].field; 
      var col="<td>"+c1+"</td>"; 
      $("#"+rowId).append(col); 
     }); 
    }); 

} 

处理嵌套$。每个之后,它给我什么,但“不确定”,每行每列。我猜在线路上有些问题:

var field=gridDef.columnDefs[index].fieldName; 
      var c1=gridDef.rowData[i1].field; 

我在做什么错?提前致谢。

+0

检查JSON与JSONLint.com;我看到至少你在那里有额外的逗号。 – Sablefoste

回答

0

改变这行代码:

var c1=gridDef.rowData[i1].field; 

var c1=gridDef.rowData[i1][field];