Как я могу получить список ключей от 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); } } }
- Конвенция о присвоении имен JSON
- JSON.net: как десериализовать без использования конструктора по умолчанию?
- Отключить classы JSON до C #
- C # WCF REST. Как вы используете сериализатор JSON.Net вместо стандартного DataContractSerializer?
- JSON.Net Обнаружен собственный цикл привязки
- как десериализовать JSON в IEnumerable с помощью Newtonsoft JSON.NET
- Линейная сериализация и де-сериализация
- Json.Net: Html Помощник не регенерирует
- Как пропустить / игнорировать / пропускать пустые литералы объектов в выпуске JSON?
- Удаление десериализации JSON в .NET-объект с использованием Newtonsoft (или LINQ to JSON, возможно?)
- Обеспечение json-ключей в .NET
- Как десериализовать дочерний объект с динамическими (числовыми) именами клавиш?
- Частные сеттеры в Json.Net
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
и т. Д.).