Подтвердить что ты не робот

Как можно десериализовать строку JSON в Mono?

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

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

4b9b3361

Ответ 1

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

EDIT:
как добавить ссылку? хотя я не моно-devlop-er... из здесь:

Ссылки → Изменить ссылки → .NET Сборка → Просмотр файла и его выбор

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

Ответ 2

Я рекомендую посмотреть 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);

Ответ 3

Взгляните на 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);
    }