Wpf 如何从JObject获取第一个密钥?

Wpf 如何从JObject获取第一个密钥?,wpf,json.net,Wpf,Json.net,我正在我的项目中使用Newtonsoft.Json。我有这样的JObject: { "4781":"Name 1", "1577":"Name 2", "9973":"Name 3" } 我使用JObject.parse()成功地解析了它。我需要从这个作业对象(“4781”)获取第一把钥匙。如何获取它?Json.NET不直接提供对属性的整数索引访问 如果执行JObject.Parse(jsonString)[0]操作,您将得到一个带有消息的ArgumentExcepti

我正在我的项目中使用
Newtonsoft.Json
。我有这样的
JObject

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

我使用
JObject.parse()
成功地解析了它。我需要从这个作业对象(“4781”)获取第一把钥匙。如何获取它?

Json.NET不直接提供对属性的整数索引访问

如果执行
JObject.Parse(jsonString)[0]
操作,您将得到一个带有消息的
ArgumentException

访问的JObject值的键值无效:0。应为对象属性名称。“

演示1

我怀疑Json.NET是以这种方式实现的,因为其中指出,“对象是一组无序的名称/值对。”

也就是说,
JObject
继承了实现
IList
的属性。因此,如果将
JObject
上溯到
IList
,则可以通过与文档顺序对应的整数索引访问属性:

IList<JToken> obj = JObject.Parse(jsonString);
var firstName = ((JProperty)obj[0]).Name;
演示小提琴#3

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


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