错误JObject儿童在2005年

时间:2016-12-21 10:44:55

标签: json vb.net linq visual-studio-2005

我在VB.NET 2005中遇到有关JObject的问题

Dim result_post = SendRequest("http://" + IP + ":" + Port + "/scanlog/new", data, "POST")
TB_Memo.Text = result_post
Dim json As String = TB_Memo.Text
Dim ser As JObject = JObject.Parse(json)
Dim jdata As List(Of JToken) = ser.Children().ToList

并在

中收到消息错误
ser.Children().ToList" 

约:

  

' ToList'不是' Newtonsoft.Json.Linq.JEnumerable(Of Newtonsoft.Json.Linq.JToken)'的成员。

我尝试在第一个代码行添加此内容,但仍然是错误

Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq

我在VB.NET 2010中尝试过并且工作过,但是在VB.NET 2005中仍然出错并且我正在使用2005用于真正的模块程序。 请帮助我,谢谢你的关心。

1 个答案:

答案 0 :(得分:0)

ToList不是JObject.Children()的方法或属性。相反,它是extension method命名空间中的LINQ Enumerable.ToList<TSource>(IEnumerable<TSource>) System.Linq

不幸的是,在VS 2008中添加了Visual Studio 2005 does not support extension methods,在VS 2008中也添加了does not support LINQ

因此,您需要使用传统的LINQ前List(Of JToken) constructor

Dim jdata As List(Of JToken) = new List(Of JToken)(ser.Children())

顺便说一句,如果你打算使用LINQ to JSON,那么自从that version引入LINQ以来,你可能很难移植到早于2008的任何版本的Visual Studio。