我是VB新手并尝试编写一个导出和导入JSON的Web服务。
我正在使用JSON.NET 3.5并且可以序列化很好:
我的令牌课程是:
<DataContract()> _
Public Class Token
<DataMember()> _
Public TokenID As String
<DataMember()> _
Public Issued As Date
<DataMember()> _
Public Expires As Date
<DataMember()> _
Public UserName As String
<DataMember()> _
Public CompanyID As String
<DataMember()> _
Public ApplicationID As Double
<DataMember()> _
Public UserID As Double
<DataMember()> _
Public DeviceID As Double
<DataMember()> _
Public DeviceSerialNumber As String
<DataMember()> _
Public IsValid As Boolean
<DataMember()> _
Public DebugText As String
(我从MS的序列化开始,但我认为我会尝试使用JSON.NET)
我序列化:
Dim ThisToken作为新令牌 ThisToken.DebugText =“blah” 等等
JSONString = Newtonsoft.Json.JsonConvert.SerializeObject(ThisToken)
我从网络服务获得此输出:
{ “TokenID”: “9eaae348-5cbd-46ac-8ba9-83720ac07740”, “分”: “/日期(1300422761886 + 0800)/”, “过期”: “/日期(1300465961886 + 0800)/”, “用户名”: “1234”, “CompanyID”: “6”, “的applicationID”:1.0, “用户ID”:29.0, “的DeviceID”:1.0 “DeviceSerialNumber”: “9149520800758”, “的IsValid”:真“DebugText “:”“}
到目前为止我觉得这么好。
为了测试反序列化是否有效,我想我会尝试反序列化我刚刚序列化的内容。所以我创建了一个接受字符串的web服务,并将上面的内容粘贴到其中。
deseralise的代码是:
Dim ThisToken As New Token
ThisToken = Newtonsoft.Json.JsonConvert.DeserializeObject(JSonString)
当我使用VS2005内部调试/ IE测试运行代码时,我收到http500内部服务器错误。
如果我在序列化后立即尝试反序列化,我也会遇到同样的问题。
我认为部分问题是我关注的代码是c#;来自json.net页面:
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
我可以看到在c#中有一个<Product>
部分在vb中不容易显示?
我毫不怀疑newtonsoft json.net产品运行良好;我确信我做的不对。
帮助?
安德鲁
答案 0 :(得分:8)
VB相当于
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
是
Dim deserializedProduct as Product = JsonConvert.DeserializeObject(Of Product)(Json)
所以我认为你想要
Dim ThisToken as Token = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Token)(JSonString)