Как десериализовать объект JObject для .NET

Я с радостью пользуюсь библиотекой Newtonsoft JSON . Например, я бы создал объект JObject из объекта .NET, в данном случае экземпляр Exception (может быть или не быть подclassом)

 if (result is Exception) var jobjectInstance = JObject.FromObject(result); 

теперь я знаю, что библиотека может десериализовать текст JSON (т.е. строку) на объект

 // only works for text (string) Exception exception = JsonConvert.DeserializeObject(jsontext); 

но я ищу:

 // now i do already have an JObject instance Exception exception = jobjectInstance.???? 

Понятно, что я могу перейти от JObject к тексту JSON, а затем использовать функциональность десериализации, но это кажется мне обратным.

Согласно этому сообщению , сейчас намного лучше:

 // pick out one album JObject jalbum = albums[0] as JObject; // Copy to a static Album instance Album album = jalbum.ToObject(); 

Документация: конвертировать JSON в тип

Из документации я нашел это

 JObject o = new JObject( new JProperty("Name", "John Smith"), new JProperty("BirthDate", new DateTime(1983, 3, 20)) ); JsonSerializer serializer = new JsonSerializer(); Person p = (Person)serializer.Deserialize(new JTokenReader(o), typeof(Person)); Console.WriteLine(p.Name); 

Определение classа для Person должно быть совместимо со следующим:

 class Person { public string Name { get; internal set; } public DateTime BirthDate { get; internal set; } } 

редактировать

Если вы используете последнюю версию JSON.net и не нуждаетесь в специальной сериализации, см. Ответ TienDo выше (или ниже, если вы повышаете меня: P), что является более кратким.

  • В чем разница между привязкой лямбды и метода на уровне выполнения?
  • Сериализация типа Json.Net с полиморфным дочерним объектом
  • Json Сериализация Java, которая работает с GWT
  • Можно ли выполнять бинарную сериализацию .NET в случае, если у вас нет исходного кода classа?
  • jQuery serializeArray не включает кнопку отправки, которая была нажата
  • C # JSON.NET - десериализация ответа, использующего необычную структуру данных
  • Преобразование байтов в Int / uint в C
  • Каковы различия между XmlSerializer и BinaryFormatter
  • Исключить свойство из сериализации через пользовательский атрибут (json.net)
  • EF 4.1 - Code First - Ошибка серийной ссылки JSON
  • Использование JSON.NET для возврата ActionResult
  • Interesting Posts

    Как вычесть 3 часа с даты в MySQL?

    dcast error: «Отсутствует функция агрегирования: по умолчанию – длина»

    Как вы дросселируете пропускную способность соединения сокета в C?

    Каков самый простой способ подключения двух компьютеров?

    Показывать предварительный просмотр изображения перед загрузкой

    Как я могу выполнить миграцию в laravel 5.5?

    INSTALL_FAILED_CPU_ABI_INCOMPATIBLE на устройстве с использованием intellij

    Как сделать пакетный файл завершенным после возникновения ошибки?

    Двойная проверка блокировки в синглтоне

    Не удалось отправить GIF-запрос Google Analytics

    Как написать метку времени создания в apk

    Пользовательское связующее устройство DateTime в Asp.net MVC

    Как настроить динамические изображения на ViewFlipper в Android?

    Как добавить аргументы командной строки (параметры) для закрепленных приложений в Windows 7?

    Как игнорировать все орфографические ошибки в документе Word 2013?

    Давайте будем гением компьютера.