我是VB新手,嘗試編寫一個導出和導入JSON的web服務。JSON.Net VB反序列化不起作用
我使用JSON.NET 3.5,可以精細序列:
我Token類是:
<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)
我連載:
昏暗ThisToken作爲新令牌 ThisToken.DebugText = 「嗒嗒」 等
JSONString = Newtonsoft.Json.JsonConvert.SerializeObject(ThisToken)
而且我從web服務的輸出:
{ 「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」:true,「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>
一部分是不容易apparant在VB?
我毫不懷疑,newtonsoft json.net產品工作正常;我確信我沒有做正確的事情。
幫助?
安德魯
感謝堆;這樣可行。 – andrew 2011-03-18 06:12:00
我需要註冊並登錄,然後才能進行投票並標記爲完整的東西.. andrew – andrew 2011-03-18 06:12:49
如果我沒有要反序列化的類/類型,該怎麼辦?就像我在c#中有這樣的聲明,dynamic deserializedProduct = JsonConvert.DeserializeObject(json);在VB.NET上會有什麼相同的結果?看到的問題http://stackoverflow.com/questions/13890267/vb-net-deserialize-json-to-anonymous-object-using-newtonsoft-returned-error – 2012-12-15 09:05:23