VB.NET 和 Json,反序列化保留关键字
VB.NET and Json, Deserialize preserved keywords
我对 vbnet 和 json 有疑问。我正在尝试从 restservice 获取一些信息。 restservice return this json string:
{
"Default": 1,
"Date": "2015-01-26T00:00:00+01:00",
}
我想反序列化这个响应,做类似的事情:
Dim result As myclass = Newtonsoft.Json.JsonConvert.DeserializeObject(Of myclass (responseText)
问题是 "Default" 和 "Date" 是保留关键字,所以我不能定义这个 class:
Public Class myclass
Public Property Date As Datetime
Public Property Default as String
End Class
我无法修改 de restservice,所以如何获得所需的行为?
来自VB.NET spec:
Regular identifiers may not match keywords, but escaped identifiers can.
所以
Public Class myclass
Public Property Date As Datetime
Public Property Default as String
End Class
你可以使用 转义标识符 像这样使用方括号
Public Class [myclass]
Public Property [Date] As Datetime
Public Property [Default] as String
End Class
另一个解决方案是使用 JsonProperty
attribute
Public Class SomeClass
<JsonProperty("Date")>
Public Property TheDate As Datetime
<JsonProperty("Default")>
Public Property SomethingDefault as String
End Class
我对 vbnet 和 json 有疑问。我正在尝试从 restservice 获取一些信息。 restservice return this json string:
{
"Default": 1,
"Date": "2015-01-26T00:00:00+01:00",
}
我想反序列化这个响应,做类似的事情:
Dim result As myclass = Newtonsoft.Json.JsonConvert.DeserializeObject(Of myclass (responseText)
问题是 "Default" 和 "Date" 是保留关键字,所以我不能定义这个 class:
Public Class myclass
Public Property Date As Datetime
Public Property Default as String
End Class
我无法修改 de restservice,所以如何获得所需的行为?
来自VB.NET spec:
Regular identifiers may not match keywords, but escaped identifiers can.
所以
Public Class myclass
Public Property Date As Datetime
Public Property Default as String
End Class
你可以使用 转义标识符 像这样使用方括号
Public Class [myclass]
Public Property [Date] As Datetime
Public Property [Default] as String
End Class
另一个解决方案是使用 JsonProperty
attribute
Public Class SomeClass
<JsonProperty("Date")>
Public Property TheDate As Datetime
<JsonProperty("Default")>
Public Property SomethingDefault as String
End Class