在JObject中处理Dictionary的问题(​​Newtonsoft.Json)

时间:2015-05-21 04:43:10

标签: c# json.net

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

1 个答案:

答案 0 :(得分:1)

您可以使用jobject属性方法

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

取自这里

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