В формате JSON в CSV проблема json.net в C# десериализация
Преобразование Json в CSV
Я использую библиотеку JSON .net
У меня есть большой файл json, и мне нужно преобразовать его в файл. csv, который я могу десериализовать в массив datatable и
datatable в csv.
как десериализовать весь файл в csv ? он имеет список, массив некоторых рутообъектов
Я сгенерировал классы из файла json с помощью "json2csharp"
структура файла json;
{ "Active":"0", "Customer_Reference":"Suncor", "Datalink_Bus":"J1939", "Engine_Serial_Number":"66302847", "Equipment_ID":"0300", "FMI":"1", "Latitude":"56.727", "Longitude":"-111.381", "Message_Type":"FC", "Notification_Version":"2.004.002", "Occurrence_Count":"1", "Occurrence_Date_Time":"2016-10-11T14:34:38.150Z", "SPN":"100", "Sent_Date_Time":"2016-10-12T00:52:28.825Z", "Snapshots": [{ "Parameter": [{ "Name":"Truck speed", "Parameter_Source_Address":"", "Value":"0" }, { "Name":"HP Feedback - Alt In", "Parameter_Source_Address":"", "Value":"7" }], "Snapshot_DateTimestamp":"2016-10-11T14:34:09.000Z" }, { "Parameter": [{ "Name":"Truck speed", "Parameter_Source_Address":"", "Value":"0" }, { "Name":"HP Feedback - Alt In", "Parameter_Source_Address":"", "Value":"7" }], "Snapshot_DateTimestamp":"2016-10-11T14:34:10.000Z" }] }
Занятия:
public class Parameter { public string Name { get; set; } public string Parameter_Source_Address { get; set; } public string Value { get; set; } } public class Snapshot { public List<parameter> Parameter { get; set; } public string Snapshot_DateTimestamp { get; set; } } public class RootObject { public string Active { get; set; } public string Customer_Reference { get; set; } public string Datalink_Bus { get; set; } public string Engine_Serial_Number { get; set; } public string Equipment_ID { get; set; } public List<snapshot> Snapshots { get; set; } }
Я получаю только столбцы в представлении datagrid и пустые строки.(нулевой)
как разобрать многослойный Json в CSV
Что я уже пробовал:
public string ReadJsonFile(String Filepath) { string json = string.Empty; // char seperator = ','; using (StreamReader read = new StreamReader(textBox1.Text)) { json = read.ReadToEnd(); var data1 = JsonConvert.DeserializeObject<parameter>(json); List<parameter> data = JsonConvert.DeserializeObject<list<parameter>>(json); DataTable dTable = ToDataTable(data) ;//call function to convert list to datatable dataGridView1.DataSource = dTable; } return json; }
При этом я получаю 3 столбца (имя,адрес параметра, значение)в datatable, но они пусты ..нет данных строк.
Philippe Mori
Использует блок кода для вашего кода, чтобы сделать его читаемым... и увеличить шанс получить некоторую помощь.
Кроме того, что такое декларация о parameter
класс и где находится код для записи в CSV-файл? Мы не можем сказать вам о проблеме в вашем коде, если его нет!