我是VB的新手,并试图编写一个导出和导入 JSON的Web服务. 我正在使用JSON.NET 3.5并且可以序列化很好: 我的令牌课程是: DataContract() _ Public Class Token DataMember() _ Public TokenID As String DataMemb
我正在使用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)
我从Web服务获得此输出:
{“TokenID”:“9eaae348-5cbd-46ac-8ba9-83720ac07740”,“Issued”:“/ Date(1300422761886 0800)/”,“Expires”:“/ Date(1300465961886 0800)/”,“UserName”:“ 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产品运行良好;我确信我做的不对.
救命 ?
安德鲁
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)