我有一个提供者以下简化的
JSON字符串,自从我使用Visual Studio和vb.Net以来已经很久了,所以我很生锈!
@H_404_14@
您的类JSON_result与您的JSON字符串不匹配.请注意,JSON_result对象将如何包含在另一个名为“Venue”的属性中.
{ "Venue": { "ID": 3145,"Name": "Big Venue,Clapton","NameWithTown": "Big Venue,Clapton,London","NameWithDestination": "Big Venue,"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的形式出现,为什么我的类的其他属性都没有被填充,我需要做什么来解决这个问题,没有报错.
所以要创建一个类,例如:
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,"Message": "OK" } }
或使用例如一个ContractResolver来解析JSON字符串.