gpt4 book ai didi

wpf - 如何从 JObject 获取第一个 key ?

转载 作者:行者123 更新时间:2023-12-04 10:36:39 27 4
gpt4 key购买 nike

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

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

我用 JObject.Parse() 成功解析了它.我需要从这个 JObject ("4781") 中获取第一个键。我如何得到它?

最佳答案

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

如果你这样做 JObject.Parse(jsonString)[0]你会得到一个 ArgumentException随着消息

Accessed JObject values with invalid key value: 0. Object property name expected."



演示 #1 here .

我怀疑 Json.NET 是这样实现的,因为 JSON standard声明,“对象是 无序 名称/值对集。”

话虽如此, JObject继承自 JContainer 这是 explicitly实现 IList<JToken> .因此,如果你向上推 JObjectIList<JToken>您可以通过与文档顺序对应的整数索引访问属性:
IList<JToken> obj = JObject.Parse(jsonString);
var firstName = ((JProperty)obj[0]).Name;

演示 fiddle #2 here .

或者,您可以将 LINQ 用于类型安全的解决方案,而无需进行任何强制转换:
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();

演示 fiddle #3 here .

关于wpf - 如何从 JObject 获取第一个 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414718/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com