2014-04-17 38 views
0

我有一些數據需要序列化爲json。下面是我使用的後端產生的JSON代碼的簡化版本:JSON.NET序列化爲陣列

public class RawBarData 
{ 
    public string Month { get; set; } 
    public decimal Total { get; set; } 
} 

List<RawBarData> lstData == getData(); 

string jdata = JsonConvert.SerializedObject(lstData); 

在此之後運行,jdata看起來是這樣的:

[ 
    { Month: "January", Total: 10}, 
    { Month: "February", Total: 8}, 
    { Month: "March", Total: 4}, 
    { Month: "April", Total: 13}, 
    { Month: "May", Total: 17}, 
    { Month: "June", Total: 9} 
] 

不過,我需要的輸出看起來像這樣:

[ 
    ["January", 10], 
    ["February", 8], 
    ["March", 4], 
    ["April", 13], 
    ["May", 17], 
    ["June", 9] 
] 

我該如何指導json.net以這種格式序列化數據?

+0

使用正確的JSON格式獲取內容的關鍵是創建一個C#對象,該對象將序列化您想要的內容。兩種方法來做到這一點。一種是創建一個新類並提供一種方法轉換爲新類。第二種方法是爲序列化目的明確創建匿名對象(如遞歸的答案)。 – mason

回答

3

你可以這樣說:

List<object[]> converted = getData() 
    .Select(r => new object[] { r.Month, r.Total }) 
    .ToList(); 
string jdata = JsonConvert.SerializedObject(converted); 

這取代了RawBarData實例與object陣列,這將序列化爲......你猜對了,JSON陣列。