JSON.NET: зачем использовать JToken – когда-либо?

В качестве продолжения моего вопроса здесь: JSON.NET: получить JObject из значения JProperty …

Я читал ссылки и переваривал приведенные выше комментарии и советы. Теперь я задаюсь вопросом: есть ли веская причина, почему нет «прямого» (т. Е. Простого) способа превратить значение объекта JProperty в объект JObject? Кажется, что очень много работы, чтобы добраться до JToken, а затем придется строить, если заявления и т. Д. Это не значит жаловаться на дополнительную работу; скорее, я должен признать, что я все еще думаю, что не понимаю истинной цели JToken. В свое время все пакеты FedEx сначала направлялись в Мемфис: Кажется, что все объекты могут / должны идти в JToken сначала, а затем быть разделены на фактический тип целевого объекта. Это способ думать об этом?

Другими словами, есть ли веская причина использовать JToken – или просто так много других функций возвращают JToken, и тогда вам нужно просто справиться с этим? В руководстве JSON.NET приведены способы использования JToken для других типов ( http://www.newtonsoft.com/json/help/html/Operators_T_Newtonsoft_Json_Linq_JToken.htm ), но не упоминается, что вы отправляете JToken в JObject …

Я обнаружил, что JObject обычно является тем, что я хочу иметь, чтобы работать с JSON и отображать из JSON в мои classы .NET и обратно, а также выполнять множество других операций. Я все еще удивляюсь, какая веская причина когда-либо использовать объект JToken?

Из стандарта JSON построен из следующих пяти типов токенов:

  • object : неупорядоченный набор пар имя / значение.
  • array : упорядоченный набор значений.
  • value : строка в двойных кавычках или число , или true или false или null , или объект или массив. Эти структуры могут быть вложенными.
  • строка
  • число .

JToken – это абстрактный базовый class, который представляет любой из этих возможных токенов. Если у вас есть JSON и вы не знаете заранее, что может быть внутри, вы можете проанализировать его с помощью JToken.Parse() и получить результат, если JSON действителен. JObject.Parse() и JArray.Parse() будут JArray.Parse() , если токен корневого JSON не соответствует ожидаемому типу. И нет JValue.Parse() для анализа строки JSON, которую вы знаете, для представления «атомного» значения, требующего использования JToken.Parse() в таком случае.

  • Информация о сериализации типов кеша Json.NET?
  • Json.NET добавляет обратную косую черту при возврате сериализованной строки json
  • Json.NET (Newtonsoft.Json) - Два «свойства» с таким же именем?
  • Заставить JSON.NET включать миллисекунды при сериализации DateTime (даже если компонент ms равен нулю)
  • Как использовать JSON.NET для десериализации в вложенный / рекурсивный словарь и список?
  • Использование JSON.NET в качестве стандартного JSON-сериализатора в ASP.NET MVC 3 - возможно ли это?
  • Строка Parse Json в C #
  • Удаление десериализации полиморфных classов json без информации о типе с использованием json.net
  • Как я могу разбирать JSON с C #?
  • Уничтожить вложенные JSON в объекты C #
  • Сериализовать словарь как массив (пар ключей)
  • Interesting Posts

    Мой компьютер не запускается – он застрял во включенном, выключенном контуре

    Как вручную добавить в Internet Explorer список защиты слежения (TPL), который не находится на веб-сайте галереи Internet Explorer?

    Возможно ли иметь несколько стилей внутри TextView?

    Как ссылаться на другой файл в Dart?

    Почему проверка Windows Update настолько медленная?

    Получить список процессов в Windows с помощью безопасного набора символов

    Цикл через таблицы Excel

    Скремблирование данных с веб-сайта с помощью vba

    включая значок в автономное приложение JavaFX (.exe)

    Как интегрировать поставщика членства IoC с ASP.NET MVC

    Почему я получаю «предупреждение, что длинная длина объекта не кратная короткой длине объекта»?

    Есть ли ошибка в управлении представлением списка Delphi при использовании пользовательского чертежа?

    Ошибка Git push-pre-receive

    C # Консоль принимает вход с трубой

    Почему в .NET нет XML-сериализуемого словаря?

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