VB:如何获取给Newtonsoft.Json.Linq.JObject的所有键

时间:2016-01-17 22:42:15

标签: json vb.net vba linq visual-studio-2015

我在Visual Studio 2015的Visual Basic程序中使用Newtonsoft.Json(http://www.newtonsoft.com/json)。

Dim jObject As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(jsonString)

jsonString是:

{
  "total": 2,
  "0":{
      "name": "component 0",
      "primary": "R"
  },
  "1":{
      "name": "component 1",
      "primary": "C"
  }
}

如何从jObject获取子词典的所有键(在这种情况下:" 0"和" 1")?

顺便问一下,VB中的newtonsoft是否有很好的API文档?在C#中有这么多,但在VB中很少。很难在我的程序中使用它们。感谢。

1 个答案:

答案 0 :(得分:1)

由于您尝试反序列化的对象没有强类型,我认为您的选项有限。

您可以反序列化为Dictionary(字符串,对象)。

Dim myObj as Dictionary(of string, object)
myObj = JsonConvert.DeserializeObject(of Dictionary(of string, object))(json)

如果你对json有任何控制并且可以使这些元素(不是“total”元素)成为他们自己的数组,那么你可以创建一个反序列化的类。

如果你有能力调整json(根据@BAE的评论),宁可看下面的内容。

{
  "total": 2,
  "Items": [
  "0":{
      "name": "component 0",
      "primary": "R"
  },
  "1":{
      "name": "component 1",
      "primary": "C"
  }]
}