2011-03-10 31 views
1

所以我有一個for循環,其從retreiving值環和動態將其添加到一個JSON數組中的

這裏返回每個結果記錄一個

ID 名稱 起始日期 結束日期是下面的for循環>

 for (var i = 0; i < data.d.results.length; i++) { 
    } 

所以在最後根據有多少記錄返回我將有一些這些。

我想這樣做是因爲這些記錄都在循環動態創建它們添加到我的JSON對象

jsonObject= [{ 
    id: 0, name: Name1, series: [{ start: Startdate1, end: Enddate1 }], 
    id: 1, name: Name2, series: [{ start: Startdate2, end: Enddate2 }], 
    id: 2, name: Name3, series: [{ start: Startdate3, end: Enddate3 }], 
    }]; 

所以通過循環ID的1對象中添加的機會很少,那麼2然後3. 我一直在閱讀.push方法,但不知道我如何構造這一個。

回答

2

這應該完成你正在尋找的東西。

<html> 
    <head> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" ></script> 
    <script type='text/javascript' src='https://github.com/douglascrockford/JSON-js/raw/master/json2.js'></script> 
    <script type="text/javascript"> 
     var data = {}; 
     data.d = {}; 
     data.d.results = [ 
      ["1", "Bob", "01/01/2007", "12/31/2010"], 
      ["2", "Jim", "01/01/2007", "12/31/2010"], 
      ["3", "Tom", "01/01/2007", "12/31/2010"] 
     ]; 

     var jsonObject = []; 
     for (var i = 0; i < data.d.results.length; i++) { 
      var jsonItem = {}; 
       jsonItem.id = data.d.results[i][0]; 
       jsonItem.name = data.d.results[i][1]; 
       jsonItem.series = []; 

      var jsonSeries = {} 
       jsonSeries.start = data.d.results[i][2]; 
       jsonSeries.end = data.d.results[i][3]; 

      jsonItem.series.push(jsonSeries); 
      jsonObject.push(jsonItem); 
     } 

     alert(JSON.stringify(jsonObject)); 
    </script> 
    </head> 
    <body>  
    </body> 
</html>  
+0

請問您能解釋data.d.results的重要性嗎?它總是二維矩陣嗎? – 2015-02-16 10:51:40

+1

'data.d.results'僅僅是OP在他的問題中提供的對象結構,所以我在我的答案中使用了相同的結構。在這種情況下,假設「結果」總是一個二維矩陣。 – 2015-02-16 14:39:41

1

您可以使用$ .map()進行這種簡單的轉換。這假定您正在接收屬性爲id,Name,StartDate和EndDate的對象數組:

var jsonObject = $.map(data.d.results, function(item, i) { 
    return { 
    id: i, 
    name: item.Name, 
    series: [{ start: item.StartDate, end: item.EndDate }] 
    }; 
}); 
+0

+1從來不知道$ .map()函數。很酷! – 2011-03-11 21:59:03

相關問題