2015-07-14 2 views
2

Я использую Newtonsoft.Json в моем проекте. У меня есть JObject как это:Как получить первый ключ от JObject?

{ 
    "4781":"Name 1", 
    "1577":"Name 2", 
    "9973":"Name 3" 
} 

Я успешно разобрать его с JObject.Parse(). Мне нужно получить первый ключ от этого JObject («4781»). Как мне это получить?

ответ

5

Json.NET не обеспечивает целочисленный индексированный доступ к свойствам JObject.

Если вы JObject.Parse()[0] вы получаете ArgumentException с сообщением

значения Достигано JObject с недействительным значением ключа: 0. Название объекта недвижимости ожидается «

Я подозреваю Json.NET был реализован. таким образом, поскольку JSON standard утверждает: «объект является неупорядоченным набором пар имя/значение.»

Итак, если вы хотите, чтобы имя свойства, то следует использовать LINQ:

using System; 
using System.Linq; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 


var obj = JObject.Parse(json); 
var firstName = obj.Properties().Select(p => p.Name).FirstOrDefault(); 
+0

Спасибо за ответ! Но здесь нет метода Select(). – BArtWell

+2

Добавить с помощью Newtonsoft.Json.Linq - https://dotnetfiddle.net/Ary1HQ –

+1

@BArtWell - добавлены некоторые операторы 'using'. – dbc

Смежные вопросы