VB.NET和Json,反序列化保留的关键字

时间:2015-01-26 10:48:11

标签: .net json vb.net

我遇到了vbnet和json的问题。我正试图从restservice获取一些信息。 restservice返回这个json字符串:

{
  "Default": 1,
  "Date": "2015-01-26T00:00:00+01:00",
}

我想反序列化此响应,执行以下操作:

Dim result As myclass = Newtonsoft.Json.JsonConvert.DeserializeObject(Of myclass (responseText)

问题是“默认”和“日期”是保留的关键字,因此我无法定义此类:

Public Class myclass 
    Public Property Date As Datetime
    Public Property Default as String
End Class

我无法修改de restservice,所以如何才能获得所需的行为?

1 个答案:

答案 0 :(得分:4)

来自VB.NET spec

  

常规标识符可能与关键字不匹配,但转义标识符可以。

所以而不是

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