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();