begg Ответов: 3

Конвертер JSON в CSV


Привет,

Я разработал приложение на языке C# .Сеть, которая считывает в JSON ответ из API и записывает его в a .файл json.JSON очень вложенный и сложный, поэтому для объема проекта мы выяснили, что не будем конвертировать его в Excel или CSV-файл, а просто запишем данные как есть.

Разработка завершена, и теперь есть необходимость, чтобы эти данные Json были представлены в удобочитаемой структуре, поэтому меня просят заполнить их в Excel или CSV-файл с помощью какого-либо инструмента. Я искал в интернете, но не смог найти ни одного хорошего инструмента. Я не могу публиковать данные json в интернете, так как это конфиденциальные корпоративные данные, поэтому онлайн-конвертеры мне не нужны. Я публикую этот вопрос только для того, чтобы узнать, знает ли кто-нибудь какой-либо инструмент для изменения этих данных в csv или excel. Я беспокоюсь, что мне, возможно, придется снова переделывать свой проект и программно заполнять его в excel.

Заранее благодарю вас за любую идею, которую вы могли бы предоставить.

Что я уже пробовал:

Я попытался поискать в интернете различные инструменты, но не смог выбрать ни один из них.

3 Ответов

Рейтинг:
28

David_Wimbley

Я надеюсь, что вы используете JSON.net (newtonsoft) и уже есть классы, созданные для вашего сложного JSON. Если нет, то я бы посоветовал вам это сделать. Вы даже можете взять свой json, вставить его в json2csharp - генерация классов c# из json[^] который будет генерировать классы для вашего JSON.

Один из вариантов - исследовать сериализацию объектов C# в csv.

Что-то вроде этого:

c# - рекомендации по сериализации объектов в пользовательский строковый формат для использования в выходном файле - переполнение стека[^]

То, о чем вы просите, возможно. Но без дополнительных знаний о вашем проекте это лучшее, что я могу придумать на данный момент.


Рейтинг:
2

Member 13326963

Привет как я пытался с этим кодом работает в localhost но в производстве появляется ошибка так как мы использовали Azure для публикации нашего кода
Не могли бы вы помочь мне преодолеть это?


Wendelius

Поскольку у вас есть новый вопрос, лучше всего разместить его по адресу Задавать вопрос[^]

Рейтинг:
19

manu_dhobale

Пожалуйста, проверьте, помогает ли это

static void Main(string[] args)
       {
           var json = @"{
                       ""employees"": [
                       { ""firstName"":""John"" , ""lastName"":""Doe"" },
                       { ""firstName"":""Anna"" , ""lastName"":""Smith"" },
                       { ""firstName"":""Peter"" , ""lastName"":""Jones"" }
                       ]
                       }";
           jsonStringToCSV(json);
       }

       public static void jsonStringToCSV(string jsonContent)
       {
           //used NewtonSoft json nuget package
           XmlNode xml = JsonConvert.DeserializeXmlNode("{records:{record:" + jsonContent + "}}");
           XmlDocument xmldoc = new XmlDocument();
           xmldoc.LoadXml(xml.InnerXml);
           XmlReader xmlReader = new XmlNodeReader(xml);
           DataSet dataSet = new DataSet();
           dataSet.ReadXml(xmlReader);
           var dataTable = dataSet.Tables[1];

           //Datatable to CSV
           var lines = new List<string>();
           string[] columnNames = dataTable.Columns.Cast<DataColumn>().
                                             Select(column => column.ColumnName).
                                             ToArray();
           var header = string.Join(",", columnNames);
           lines.Add(header);
           var valueLines = dataTable.AsEnumerable()
                              .Select(row => string.Join(",", row.ItemArray));
           lines.AddRange(valueLines);
           File.WriteAllLines(@"D:/Export.csv", lines);
       }


Yaseer Arafat

Вы должны связать мое решение вы копировали весь мой код :P