Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Использование JSON в c# (System.Runtime.Serialization)

#c_sharp #json


Задача хранить сериализованные данные в JSON. Нашел даже пример: DataContractJsonSerializer

Но есть проблема: данные JSON в файле сохраняются в одну строчку: 


  [{"Age":29,"Company":{"Name":"Microsoft"},"Name":"Tom"},{"Age":25,"Company":{"Name":"Apple"},"Name":"Bill"}]


Как сериализовывать в JSON, что бы данные имели нормальное форматирование, как и
в примере в википедии?
    


Ответы

Ответ 1



Тут советуют использовать либу JSON.NET Пример с либой: using System; using Newtonsoft.Json; namespace JsonPrettyPrint { internal class Program { private static void Main(string[] args) { Product product = new Product { Name = "Apple", Expiry = new DateTime(2008, 12, 28), Price = 3.99M, Sizes = new[] { "Small", "Medium", "Large" } }; string json = JsonConvert.SerializeObject(product, Formatting.Indented); Console.WriteLine(json); Product deserializedProduct = JsonConvert.DeserializeObject(json); } } internal class Product { public String[] Sizes { get; set; } public decimal Price { get; set; } public DateTime Expiry { get; set; } public string Name { get; set; } } } Результат: { "Sizes": [ "Small", "Medium", "Large" ], "Price": 3.99, "Expiry": "\/Date(1230447600000-0700)\/", "Name": "Apple" } Как я понимаю Formatting.Indented задает отступы. P.S Если верить табличке, то JSON.NET круче реализации от майков.

Комментариев нет:

Отправить комментарий