Сохранение строки JSON в файл - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня. По моему достаточно простая операция, но что то я затупил и не как не могу разобраться, нужен совет со стороны. В общем использую библиотеку Newtonsoft.Json. Получаю с сервера массив объектов json(объекты сложные по структуре - имеют более 10 простых полей и 5 List с разным количеством содержимого), десериализую его, получаю массив объектов .NET. С этой частью проблем нет. Но необходимо сохранить этот массив объектов. По логике программы удобнее всего использовать обычный текстовый файл(хотя наверно можно рассмотреть другой формат файла, лишь бы работало) а не БД. Т.е. наиболее экономичным, как мне кажется, будет хранить именно массив json строк. И вот здесь я и завис. То есть сохранить массив строк в файл сложности не составило - пишется без проблем. А вот при восстановлении получается каша - вместо положенного десятка json строк мне выдается из файла массив размером за 1000 - все элементы одного объекта, в т.ч. скобки, кавычки и проч. считаются за одну строку. Как я понял, при записи забыл "защитить" символы разметки json, вот такое и получилось. Собственно как правильно осуществить эту операцию? Вот сохранение в файл, с отбрасыванием вспомогательных операций по прописыванию пути.
 
List<string> ListStrings = new List<string>();
JArray array = await GetHistory();                      //мой вызов сервера
foreach (JObject jo in array)
 
        {
            ListStrings .Add(jo.ToString());            
         }
File.WriteAllLines(filepath, ListStrings );
Ну и собственно операция чтения:
string[] strings = File.ReadAllLines(filepath);

Решение задачи: «Сохранение строки JSON в файл»

textual
Листинг программы
JArray array = await GetHistory();
string json = JsonConvert.SerializeObject(array);
File.WriteAllText(filepath, json);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы