2014-04-17 3 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 массивы.

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