【发布时间】:2018-09-20 12:44:35
【问题描述】:
我的 VB 有点生疏,但我需要解析一个 JSON 字符串。我已经在没有问题的 C# 中做到了。这是一个旧项目,我正在使用 VS2008。 这是我的课:
Public Class ResponseMeta
Private _type As String
<JsonProperty("type")> _
Public Property type() As String
Get
Return _type.ToString()
End Get
Set(ByVal value As String)
_type = value
End Set
End Property
Private _message As String
<JsonProperty("message")> _
Public Property message() As String
Get
Return _message
End Get
Set(ByVal value As String)
_message = value
End Set
End Property
Private _message_v1 As String
<JsonProperty("message-v1")> _
Public Property message_v1() As String
Get
Return _message_v1
End Get
Set(ByVal value As String)
_message_v1 = value
End Set
End Property
Private _message_v2 As String
<JsonProperty("message-v2")> _
Public Property message_v2() As String
Get
Return _message_v2
End Get
Set(ByVal value As String)
_message_v2 = value
End Set
End Property
Private _message_v3 As String
<JsonProperty("message-v3")> _
Public Property message_v3() As String
Get
Return _message_v3
End Get
Set(ByVal value As String)
_message_v3 = value
End Set
End Property
Private _message_v4 As String
<JsonProperty("message-v4")> _
Public Property message_v4() As String
Get
Return _message_v4
End Get
Set(ByVal value As String)
_message_v4 = value
End Set
End Property
End Class
要反序列化的代码是:
Dim test As String
test = "{""response-meta"":{""type"":""S"",""message"":"""",""Total No Of Records"":"""",""message-v1"":""1"",""message-v2"":"""",""message-v3"":"""",""message-v4"":""""}}"
Dim testcl As ResponseMeta
testcl = JsonConvert.DeserializeObject(Of ResponseMeta)(test)
对象的所有属性都设置为Nothing,如果我添加手表,它会说:
type = {"对象引用未设置为对象的实例。"}
我现在已经在这方面花费了无数个小时,而 Google 没有找到任何提示或线索来说明这里可能出了什么问题。
非常欢迎任何建议。
【问题讨论】:
-
为什么需要使用不受支持的 Visual Studio 版本来编辑旧代码? VS 2017 应该可以正常工作
标签: json vb.net visual-studio class json.net