将动态Json对象解析为VB类
我有这个嵌套结构将动态Json对象解析为VB类,json,vb.net,parsing,Json,Vb.net,Parsing,我有这个嵌套结构 Public Class Results_FullData Public Property results As List(Of DSContent) End Class Public Class DSContent Public Property userRunId As Long Public Property metaColumnValues As List(Of String) Public Property dataColumnVal
Public Class Results_FullData
Public Property results As List(Of DSContent)
End Class
Public Class DSContent
Public Property userRunId As Long
Public Property metaColumnValues As List(Of String)
Public Property dataColumnValues As List(Of String)
End Class
并希望将其解析为类。
我有以下代码来获取json文件并对其进行反序列化
Public Function getData(ByVal _token As String, ByVal _identifier As String) As Results_FullData
Dim client = New RestClient(_baseURI)
Dim request = New RestRequest("/datasource/{id}/data", Method.GET)
request.AddParameter("id", _identifier)
request.AddUrlSegment("id", _identifier)
request.AddHeader("Authorization", "Bearer " + _token)
request.AddHeader("environment", _environment)
Dim jstr = client.Execute(request).Content
Dim allData As Results_FullData = JsonConvert.DeserializeObject(Of Results_FullData)(jstr)
Return allDATA
End Function
建立这个班级结构
Public Class Results_FullData
Public Property results As List(Of DSContent)
End Class
Public Class DSContent
Public Property userRunId As Long
Public Property metaColumnValues As List(Of String)
Public Property dataColumnValues As List(Of String)
End Class
但是运行代码时,对象datasourceInfo是空的,我不知道为什么。我以为我可以采用的解决方案,但它不起作用。我猜列表(字符串)
部分是错的。问题在于每个对象中的元列值和数据列值的长度不同。这样做的目的是将其放入一个字符串中,稍后将其分离,因为值在对象中是分开的
有人能帮我吗
编辑:
数据示例:
{"result":[{"userRunId":"xxxxxxx","metaColumnValues":["9006409","20073"],"dataColumnValues":["","superior"]},{"userRunId":"xxxxxxx","metaColumnValues":["2345","235","1"],"dataColumnValues":["","superior", "test"]}]}
在
Results\u FullData
中,该属性称为Results
,但在示例JSON中,该属性称为result
。另外,DSContent.userRunId
被声明为Long
,即使在JSON中,该属性包含String
值。如果您在数据类中修复了这两个问题,它将正确地反序列化示例数据:
Public Sub Main()
Dim json As String = "{""result"":[{""userRunId"":""xxxxxxx"",""metaColumnValues"":[""9006409"",""20073""],""dataColumnValues"":["""",""superior""]},{""userRunId"":""xxxxxxx"",""metaColumnValues"":[""2345"",""235"",""1""],""dataColumnValues"":["""",""superior"", ""test""]}]}"
Dim allData As Results_FullData = JsonConvert.DeserializeObject(Of Results_FullData)(json)
End Sub
Public Class Results_FullData
Public Property result As List(Of DSContent)
End Class
Public Class DSContent
Public Property userRunId As String
Public Property metaColumnValues As List(Of String)
Public Property dataColumnValues As List(Of String)
End Class
你能不能提供最短的数据,这些数据不能正确地反序列化,并且作为JSON文本,而不是已经在某个工具中解析过的图像?我编辑了我的问题,现在提供了一些示例数据。太好了!谢谢!