2015-03-02 3 views
0

Я хочу использовать jqgrid с вложенными субгридами. Я извлекаю данные из базы данных через вызов Ajax с типом контента JSON. Так выглядит моя структура JSON. Мне нужно сформировать объект массива из него.Создание многомерного массива с использованием JQuery foreach

records : 

{ 

contracts[ 
      { 
       contractid: 1, 
       contractname: contractname1, 
       status: "open", 

       contractLines: [    --contractLine1 
       { 
       contractLineid: 11, 
       item name: "contractLine1", 
       description : "abcd", 
        products: [ 
        { 
        productid : 21, 
        productname : "product21" 
        }, 

        { 
        productid : 22, 
        productname : "product22" 
        } 
        ] 
       }, 

       { 
       contractLineid: 12,   contractLine2 
       item name: "contractLine1", 
       description : "abcd", 
        products: [ 
        { 
        productid : 23 
        productname : "product23" 
        },  

        { 
        productid : 24, 
        productname : "product24" 
        } 
        ] 
       } 

       ] 

      }, 

      { 
       contractid: 2, 
       contractname: contractname2, 
       status: "open", 

       contractLines: [    --contractLine1 
       { 
       contractLineid: 2, 
       item name: "contractLine21", 
       description : "abcd", 
        products: [ 
        { 
        productid : 31, 
        productname : "product31" 
        }, 

        { 
        productid : 32, 
        productname : "product32" 
        } 
        ] 
       }, 

       { 
       contractLineid: 22,   -- contractLine2 
       item name: "contractLine22", 
       description : "abcd", 
        products: [ 
        { 
        productid : 33 
        productname : "product33" 
        },  

        { 
        productid : 34, 
        productname : "product34" 
        } 
        ] 
       } 

       ] 

      } 

     ] 

}-- records 

я связывание моего 3 слоя данных столбцов сетки так:

  var records = []; 
      var records1 = []; 
      var records2 = []; 
      //============================================================ 
      // build records of Contracts 
      //============================================================ 
      $.each(contracts, function (index, contract) { 
       records[index] = {}; 
       records[index]['contractid'] = contract.ID; 
       records[index]['description'] = contract.Description; 
       records[index]['status'] = contract.Status.Value; 
       records[index]['classification'] = contract.Classification; 
       records[index]['startdate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateStart); 
       records[index]['enddate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateEnd); 
       records[index]['canceldate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateCancel); 


       //============================================================ 
       // build records of Contract Lines 
       //============================================================ 
       $.each(contract.ContractLines, function (index2, contractLine) { 

        records1[index2] = {}; 
        records1[index2]['contractlineid'] = contractLine.ID; 
        records1[index2]['itemname'] = contractLine.ItemName; 
        records1[index2]['startdate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateStart); 
        records1[index2]['enddate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateEnd); 
        records1[index2]['canceldate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateCancel); 
        records1[index2]['vendorname'] = contractLine.Vendor.Name; 
        records1[index2]['description'] = contractLine.Description; 
        records1[index2]['isshipped'] = contractLine.IsShipped; 


        //============================================================ 
        // build records of Products 
        //============================================================ 
        $.each(contractLine.Products, function (index3, product) { 

         records2[index3] = {}; 
         records2[index3]['productid'] = product.ID; 
         records2[index3]['name'] = product.Name; 
         records2[index3]['description'] = product.Description; 

        }); 



       }); 



      }); 

ответ

0

От $.getJSON

$.getJSON("ajax/test.json", function(data) { 
    var items = []; 
    $.each(data, function(key, val) { 
    items.push("<li id='" + key + "'>" + val + "</li>"); 
    }); 

    $("<ul/>", { 
    "class": "my-new-list", 
    html: items.join("") 
    }).appendTo("body"); 
}); 
+0

Я привязки данных к моей колонкам сетке, таким образом, их хранение в 3 массивах (как показано выше). Но мне нужно сформировать из них один объект массива. или вместо хранения в 3 массивах мы можем хранить в 1 массив? – nani

Смежные вопросы