所以我正在将JSON字符串反序列化为vb.net DataTable。 现在我的项目在.NET3.5框架上运行,因此我必须依靠股票JavaScriptSerializer来完成工作。 有办法做到这一点还是需要做蛮力?
答案 0 :(得分:2)
你可以使用Json.Net(它支持.Net 3.5),如下所示:
JsonConvert.DeserializeObject(Of DataTable)(json)
这将是最容易实现的,但当然您的JSON需要采用正确的格式才能正常工作,并且这并不总是容易(或可能),特别是对于DataTables这样的复杂类型。
<强>替代地强>
取决于您的JSON结构(一个示例会很有用)将JSON转换为简单对象列表然后迭代这些对象以填充DataTable可能更容易。
即。创建一个与您的JSON模式匹配的新类:
Class SimpleObject
Property Column1 As String
' etc.
End Class
然后遍历列表
Dim ListFromJson As List(Of SimpleObject) =JsonConvert.DeserializeObject(Of List(Of SimpleObject))(JsonString)
For Each item As SimpleObject In ListFromJson
' Create new row from each item in the list and add to the table
Next
事实上,通过这种方法,您可以使用列表本身完成所需的一切,它肯定比DataTable更有效。
如果您真的不想使用Json.NET(这是最简单的选项和行业标准),那么您可以使用System.Runtime.Serialization.Json
here is an example。
我很确定它不会自动转换为DataTable。
您需要创建一个如上所述的简单对象作为中间人并循环遍历这些对象的列表以将它们放入DataTable中。