Как я могу десериализовать строку JSON в Mono? - PullRequest
15 голосов
/ 22 июня 2011

Как я могу десериализовать строку JSON в C # (Mono)?

Существует ли библиотека JSON и инструкции по ее установке? Я использую fedora 14.

Ответы [ 3 ]

15 голосов
/ 22 июня 2011

мы не используем сериализатор контрактов json - вместо этого мы используем Json.NET .он также должен работать с моно.
вам не нужно устанавливать сборку, просто добавьте ссылку и предоставьте ее с вашим окончательным пакетом!

РЕДАКТИРОВАТЬ:
какдобавить ссылку?хотя я не монофонер ... взятый из здесь :

Ссылки -> Редактировать ссылки -> Сборка .NET -> Просмотреть файл и выбратьэто

иначе: эй, просто нажми F1!

3 голосов
/ 03 мая 2013

Взгляните на JSON.NET:

http://components.xamarin.com/gettingstarted/json.net

Особенности:

  • ГибкостьСериализатор JSON для преобразования между объектами .NET и JSON
  • LINQ to JSON для ручного чтения и записи JSON
  • Высокая производительность, быстрее, чем встроенные сериализаторы JSON .NET
  • Записьс отступом, легко читаемый JSON
  • Преобразование JSON в и из XML

Пример для сериализации и десериализации:

    using Newtonsoft.Json;
    ...

    public class Person
    {
        public string Name { get; set; }
        public DateTime Birthday { get; set; }
    }

    void PersonToJsonToPersonExample ()
    {
        var person = new Person { Name = "Bob", Birthday = new DateTime (1987, 2, 2) };

        var json = JsonConvert.SerializeObject (person);
        Console.WriteLine ("JSON representation of person: {0}", json);

        var person2 = JsonConvert.DeserializeObject<Person> (json);
        Console.WriteLine ("{0} - {1}", person2.Name, person2.Birthday);
    }
3 голосов
/ 22 июня 2011

Рекомендую посмотреть ServiceStack.NET Text . Это невероятно быстро по сравнению с JSON.NET.

Примеры сериализации словаря:

ServiceStack.NET

var jsonSerializer = new JsonSerializer<Dictionary<String, Object>>();
var result = jsonSerializer.SerializeToString(dict);

JSON.NET

var result = JsonConvert.SerializeObject(dict, Formatting.Indented);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...