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

标签 .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,那么我怎样才能获得所需的行为?

最佳答案

来自 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

关于.net - VB.NET 和 Json,反序列化保留的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28148675/

相关文章:

javascript - 根据 JSON 数据使用 jQuery 定位元素

javascript - XMLHttpRequest 在 6 次后停止发送

ASP.NET,VB : how to access controls inside a FormView from the code behind?

.net - 在 C++ 中重载运算符,然后在 VB.NET 中导出和导入

c++ - 允许托管环境中的托管代码回调非托管代码

.net - 我可以强制 MSTest 为每次测试运行使用新进程吗?

c# - 使用未分配的局部变量 “SHELLEXECUTEINFO”

java - 将 InputStream 内包含的 json diff 结果分离到 Java 中的映射中

c# - DataTemplate 内的 DataTemplate - ListBox 内的 ListBox

javascript - 错误: bad URI when sending data as JSON with GET method to a Rails resource