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.Json

Public 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

回到顶部