#c# #json.net
Вопрос:
Я не могу поверить, что это так сложно, но не нашел простого решения!
У меня есть объект работы, представляющий JSON, такой как
"MyData1": {
"Data": "foo"
}
Мне нужно имя корневого элемента (=Ключ) в объекте задания, но мне не нравится повторять, как это предлагается в других ответах, подобных этому:
var jsonObject = JObject.Parse(jsonString);
foreach (var tmp in jsonObject)
{
Console.WriteLine(tmp.Key);
}
Эта конструкция foreach дает мне пару значений ключа, которая обладает свойством ключа.
Как я могу получить это только для самого первого элемента в моем рабочем задании?
(Единственный обходной путь, который я нашел, — это использование System.Xml.Linq.XDocument вместо JObject — это обеспечивает корневой каталог.Свойство имени.)
Комментарии:
1. Перерыв после первой итерации
2. Да, я тоже рассматривал это — но должно быть более элегантное решение!?
3. ((JProperty)JSONObject[0]).Имя
4. Вот и все! Спасибо!
5. Да, конечно — я бы просто сделал это немного безопаснее, например: rootName = JSONObject. Количество > 0 ? (JSONObject[0] как свойство JProperty)?. Имя : null;
Ответ №1:
Используйте приведенный ниже код, чтобы получить первый ключ, пожалуйста, убедитесь, что ваш объект не является нулевым и содержит хотя бы один элемент
((JProperty)jsonObject[0]).Name