2012-11-24 193 views
0

我是從數據的基礎上讀取數據: 我有值I要陣列轉換成JSON陣列 - JSON.stringify

for (var index in entities) {                 
    console.log(entities[index].PartitionKey);                  
    console.log(entities[index].RowKey);                  
    console.log(entities[index].Details);                
    console.log(entities[index].Date); 
    } 

上面將打印所有我想要的數據。 現在我想將其轉換爲Json對象。我怎樣才能做到這一點 。

我已經使用並意識到我可以使用JSON.stringify,但是當我在此上下文中嘗試此操作時,它會給出錯誤。

我試圖保持在for循環:

jasonarray[index1].PartitionKey  = entities[index].PartitionKey; 
jasonarray[index1].RowKey   = entities[index].RowKey; 

JSON.stringify({ key: jasonarray[index1].PartitionKey, RowKey: jasonarray[index1].RowKey) 

但是,當涉及到執行此功能它給爲未定義。

所有我找的變種X:

where x is a 

[ 

{partionkey: "val",key: "val"} 
{partionkey: "val",key1: "val"} 
{partionkey: "val",key2: "val"} 

] 
+1

是什麼'entities'看起來像它的原始狀態?如果它是一個數組,你不應該使用'for in',其目的是迭代對象屬性。 –

+0

謝謝邁克爾。它是由我的數據庫查詢返回的數組。你可以讓我知道如何做到這一點 –

+1

做'console.log(JSON.stringify(實體))',所以我們可以看到原始'實體'數組的結構。 –

回答

2

的Javascript: 工作樣本http://fiddle.jshell.net/xrB8J/

var entities = [ 
    {PartitionKey: 'a', RowKey: 5, Details:'details 1', Date:'01.01.2012' }, 
    {PartitionKey: 'b', RowKey: 7, Details:'details 2', Date:'02.01.2012' }, 
    {PartitionKey: 'c', RowKey: 3, Details:'details 3', Date:'03.01.2012' } 
]; 

var a = new Array(); 
for(i = 0; i < 3; i++) 
    a.push({ 
     PartitionKey: entities[i].PartitionKey, 
     RowKey: entities[i].RowKey 
    }); 

alert(JSON.stringify(a)); 

或C#:

string json = (new JavascriptSerializer()).Serialize(entities.Select(x => new 
    { 
     x.PartitionKey, 
     x.RowKey 
    } 
));