Как я могу получить список ключей от Json.NET?

Я использую C # и Json.NET. Если у меня есть JObject, я хочу список ключей внутри объекта, подобно тому, как object.Keys() возвращает ключи внутри объекта. Кажется, это было бы очевидно, но у меня очень трудное время найти способ сделать это.

Изменить: Я просматриваю объект, и я хочу выплюнуть все ключи в объекте по мере прохождения. Я понимаю, что этот пример приведет к тому, что один и тот же ключ будет несколько раз, и это нормально для моих нужд.

 public void SomeMethod(JObject parent) { foreach (JObject child in parent.Children()) { if (child.HasValues) { // // Code to get the keys here // SomeMethod(child); } } } 

 IList keys = parent.Properties().Select(p => p.Name).ToList(); 

Документация: JObject.Properties

От преобразования свойств / токенов JSON.NET JObject в словарные ключи

Вы можете просто преобразовать JObject в объект Dictionary и получить доступ к методу Keys() из объекта Dictionary.

Как это:

 using Newtonsoft.Json.Linq; //jsonString is your JSON-formatted string JObject jsonObj = JObject.Parse(jsonString); Dictionary dictObj = jsonObj.ToObject>(); 

Теперь вы можете получить доступ к этим ключам с помощью dictObj.Keys() . Вы можете видеть, существует ли ключ, выполняя dictObj.ContainsKey(keyName) .

Очевидно, что вы можете форматировать словарь, но вы хотите (может быть Dictionary и т. Д.).

  • Использование JSON.NET в качестве стандартного JSON-сериализатора в ASP.NET MVC 3 - возможно ли это?
  • Как десериализовать JSON с двойными именами свойств в одном и том же объекте
  • Как преобразовать datatable в строку json с помощью json.net?
  • Удалить дескриптор объекта json в динамический объект с помощью Json.net
  • Уничтожить вложенные JSON в объекты C #
  • Можете ли вы определить, был ли объект, десериализованный объект, отсутствием поля с classом JsonConvert в Json.NET
  • Разбор JSON в C #
  • Интерфейсы для десериализации в JSON.NET
  • Сериализация типа Json.Net с полиморфным дочерним объектом
  • Newtonsoft JSON Deserialize
  • Как десериализовать объект JObject для .NET
  • Interesting Posts

    Использование AppDomain в C #

    На самом деле невозможно использовать перегрузку возвращаемого типа?

    Есть ли способ пропустить меню «Пуск» и перейти прямо к рабочему столу (без отключения современного пользовательского интерфейса)?

    Как KeyListener обнаруживает комбинации клавиш (например, ALT + 1 + 1)

    Linq distinct – Count

    Сообщение об ошибке «Экспорт не найден, что соответствует названию контракта ограничения»

    Что означает в «ps» и как вы создаете такой процесс?

    зачем использовать IList или List?

    Почему в Windows Server загружается большое количество ОЗУ на Win 7 с Server 2008?

    Производительность массивов против списков

    Физический аспект сетевых портов

    Совместимые функции загрузки Gmail Проблема

    ASP.Net MVC – чтение файла из HttpPostedFileBase без сохранения

    Угловой 2 – Услуги, требующие других услуг до вызова метода

    Лучше ли использовать переполненный канал Wi-Fi 2,4 ГГц 1, 6, 11 или «неиспользуемый» 3, 4, 8 или 9?

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