VB.net中json.net的简单工作示例
我从提供者那里得到了以下简化的JSON字符串,自从我使用Visual Studio和vb.Net以来已经有很长时间了,所以我很生锈!
{"Venue": {
"ID": 3145,
"Name": "Big Venue, Clapton",
"NameWithTown": "Big Venue, Clapton, London",
"NameWithDestination": "Big Venue, Clapton, London",
"ListingType": "A",
"Address": {
"Address1": "Clapton Raod",
"Address2": "",
"Town": "Clapton",
"County": "Greater London",
"Postcode": "PO1 1ST",
"Country": "United Kingdom",
"Region": "Europe"
},
"ResponseStatus": {
"ErrorCode": "200",
"Message": "OK"
}
}
}
我想使用JSON.Net将其转换为我可以使用的东西,我已经阅读了示例等,并且JSON.net看起来像答案,但我无处可去。
我的.Net代码(Me.TextBox1.Text包含上面显示的JSON)
Imports Newtonsoft.JsonPublic Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim obj As JSON_result
obj = JsonConvert.DeserializeObject(Of JSON_result)(Me.TextBox1.Text)
MsgBox(obj.ID)
End Sub
End Class
Public Class JSON_result
Public ID As Integer
Public Name As String
Public NameWithTown As String
Public NameWithDestination As String
Public ListingType As String
End Class
有人可以解释一下为什么obj.ID总是以0结尾,为什么我的类的其他属性都没有填充,为什么我需要做些什么来解决这个问题,所以没有错误报告。
回答:
您的课程JSON_result
与您的JSON字符串不匹配。请注意,该对象JSON_result
将如何表示,并包装在另一个名为中的属性中"Venue"
。
因此,要么为此创建一个类,例如:
Public Class Container Public Venue As JSON_result
End Class
Public Class JSON_result
Public ID As Integer
Public Name As String
Public NameWithTown As String
Public NameWithDestination As String
Public ListingType As String
End Class
Dim obj = JsonConvert.DeserializeObject(Of Container)(...your_json...)
或将JSON字符串更改为
{ "ID": 3145,
"Name": "Big Venue, Clapton",
"NameWithTown": "Big Venue, Clapton, London",
"NameWithDestination": "Big Venue, Clapton, London",
"ListingType": "A",
"Address": {
"Address1": "Clapton Raod",
"Address2": "",
"Town": "Clapton",
"County": "Greater London",
"Postcode": "PO1 1ST",
"Country": "United Kingdom",
"Region": "Europe"
},
"ResponseStatus": {
"ErrorCode": "200",
"Message": "OK"
}
}
或使用例如a ContractResolver
解析JSON字符串。
以上是 VB.net中json.net的简单工作示例 的全部内容, 来源链接: utcz.com/qa/427226.html