在JObject (Newtonsoft.Json)中处理字典的问题
本文关键字:处理 字典 问题 JObject Newtonsoft Json | 更新日期: 2023-09-27 17:50:21
我有这个json对象。
{
"Apparel":[
"Athlete",
73
],
"Freeze":[
"Coin",
19,
"Fur",
37,
"Grade",
72
],
"Lobster":[
"Node",
18
]
}
我在一个字符串中读取它,并将其转换为一个JObject,如下所示:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
JObject myobj = JObject.Parse(mystr);
我该如何获取所有的键{"Apparel", "Freeze", "Lobster"} ?
如果我这样做:
List<JToken> mylist = myobj.ToList<JToken>();
int l = mylist.Count;
for (int i = 0; i < l; i++)
{
Debug.WriteLine(mylist[i]);
}
它打印:
"Apparel": [
"Athlete",
73
]"Freeze": [
"Coin",
19,
"Fur",
37,
"Grade",
72
]
"Lobster": [
"Node",
18
]
{"Apparel", "Freeze", "Lobster"}
值不是恒定的,可能会发生变化。我知道我可以做一些正则表达式补丁来从字符串中得到我想要的,但我不想走那条路,除非它是最后的手段。请帮助。
您可以使用jobject属性方法,
IList<string> keys = parent.Properties().Select(p => p.Name).ToList();
from here
如何从Json.NET获得键列表?