Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net JSON.Net VB反序列化不工作_Vb.net_Json_Json.net - Fatal编程技术网

Vb.net JSON.Net VB反序列化不工作

Vb.net JSON.Net VB反序列化不工作,vb.net,json,json.net,Vb.net,Json,Json.net,我是VB新手,正在尝试编写一个导出和导入JSON的Web服务 我使用的是JSON.NET 3.5,可以很好地序列化: 我的令牌类是: <DataContract()> _ Public Class Token <DataMember()> _ Public TokenID As String <DataMember()> _ Public Issued As Date <DataMember()> _

我是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
我从Web服务中得到以下输出:

{“令牌ID”:“9eaae348-5cbd-46ac-8ba9-83720ac07740”,“发布”:“/Date(1300422761886+0800)/”,“Expires”:“/Date(1300465961886+0800)/”,“UserName”:“1234”,“CompanyID”:“6”,“ApplicationID”:1.0,“UserID”:29.0,“DeviceID”:1.0,“DeviceSerialNumber”:“9149520800758”,“IsValid”:true,“DebugText”:

到目前为止,我认为还不错

为了测试反序列化是否有效,我想我应该尝试反序列化刚刚序列化的内容。因此,我创建了一个接受字符串的Web服务,并将上面的内容粘贴到其中

要反序列化的代码是:

    Dim ThisToken As New Token

    ThisToken = Newtonsoft.Json.JsonConvert.DeserializeObject(JSonString)
当我使用VS2005内部调试/IE测试运行代码时,我得到一个http500内部服务器错误

如果在序列化之后立即尝试反序列化,也会遇到同样的问题

我认为部分问题在于我所遵循的代码是c#;从json.net页面:

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
Product deserializedProduct=JsonConvert.DeserializeObject(json);
我可以看到,在c#中有一个
部分在vb中不容易出现

我毫不怀疑newtonsoft json.net产品运行良好;我肯定我做得不对

帮忙

安德鲁

VB相当于

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
所以我想你想要

Dim ThisToken as Token = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Token)(JSonString)

我将需要注册和登录,希望然后可以做投票和标记作为完整的事情。。如果我没有要反序列化的类/类型,该怎么办?就像我在c#中的这条语句一样,dynamic deserializedProduct=JsonConvert.DeserializeObject(json);在VB.NET上与此等效的是什么?请参阅我认为在vb.net中您需要创建类以进行反序列化的问题。否则切换到.NET4
Dim deserializedProduct as Product = JsonConvert.DeserializeObject(Of Product)(Json)
Dim ThisToken as Token = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Token)(JSonString)