【问题标题】:Problems with handling Dictionary in JObject (Newtonsoft.Json)在 JObject (Newtonsoft.Json) 中处理字典的问题
【发布时间】:2015-05-21 04:43:10
【问题描述】:

我有这个 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"} 的值不是恒定的,可能会发生变化。我知道我可以做一些正则表达式补丁来从字符串中获取我想要的东西,但我不想走那条路,除非它是最后的手段。请帮忙。

【问题讨论】:

  • 所以你只想要Keys ?
  • 是的。因为我可以使用Keys 获取值。例如Debug.WriteLine(myobj.SelectToken("Apparel"));

标签: c# json.net


【解决方案1】:

可以使用jobject属性方法,

IList<string> keys = parent.Properties().Select(p => p.Name).ToList();

从这里拍摄

How can I get a list of keys from Json.NET?

【讨论】:

    猜你喜欢
    • 2022-06-25
    • 2019-06-30
    • 2021-03-05
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多