Json反序列化对象为空

Json反序列化对象为空,json,vb.net,vb.net-2010,Json,Vb.net,Vb.net 2010,我使用以下函数反序列化json: Public Sub getDataTable(ByVal json As String) json = <json>{"TYPE_OF_HANDSET": "4","SMS": [{"DATE": "19.10.2013 13:20","FROM": "SAWA Promo","MESSAGE": "Special offer only for you! Get 300 MB internet + 200 SR Extra Bonus

我使用以下函数反序列化json:

 Public Sub getDataTable(ByVal json As String)

    json = <json>{"TYPE_OF_HANDSET": "4","SMS": [{"DATE": "19.10.2013 13:20","FROM": "SAWA Promo","MESSAGE": "Special offer only for you! Get 300 MB internet + 200 SR Extra Bonus valid for 7 days for only 20 SR. Send 1 to 804097 via SMS. Extra bonus can be used to call and SMS all STC numbers. Happy browsing with SAWA!"},{"DATE": "19.10.2013 13:20","FROM": "SAWA Promo","MESSAGE": "Special offer only for you! Get 300 MB internet + 200 SR Extra Bonus valid for 7 days for only 20 SR. Send 1 to 804097 via SMS. Extra bonus can be used to call and SMS all STC numbers. Happy browsing with SAWA!"}],"DESC": "Samsung GT-I9100","ID_USER": "261"}</json>.Value

    Dim data As New DataBck
    data = JsonConvert.DeserializeObject(Of DataBck)(json)
    handsetType = data.handset
    DESC = data.DESC
    ID_USER = data.ID_USER
    smsDT = data.sms
End Sub
公共子getDataTable(ByVal json作为字符串) json={“手机类型”:“4”,“短信”:[{“日期”:“19.10.2013 13:20”,“发件人”:“SAWA促销”,“信息”:“仅限您优惠!获得300 MB互联网+200 SR额外奖金,有效期7天,仅20 SR。通过短信发送1至804097。额外奖金可用于拨打和短信发送所有STC号码。与SAWA一起愉快浏览!”,{“日期”:“19.10.2013 13:20”,“发件人”:“SAWA促销”、“信息”:“仅为您提供特别优惠!获得300 MB互联网+200 SR额外奖金,有效期7天,仅20 SR。通过短信发送1至804097。额外奖金可用于呼叫和短信所有STC号码。使用SAWA愉快浏览!”}],“描述”:“三星GT-I9100”,“ID_用户”:“261”}。价值 Dim数据作为新数据包 data=JsonConvert.DeserializeObject(属于DataBack)(json) handsetType=data.handset DESC=data.DESC ID\u USER=data.ID\u USER smsDT=data.sms 端接头 以及以下类别:

Public Class DataBck
<System.Runtime.Serialization.DataMember(Name:="TYPE_OF_HANDSET")>
Public handset As Integer
<System.Runtime.Serialization.DataMember(Name:="DESC")>
Public DESC As String
<System.Runtime.Serialization.DataMember(Name:="ID_USER")>
Public ID_USER As Integer
Public sms As DataTable
End Class
公共类数据包
作为整数的公共手机
公共描述为字符串
公共ID_用户为整数
公共sms作为数据表
末级
当我反序列化json时,所有字段名都正确填充,只有被填充的\u HANDSET中的字段名类型\u为空,当我将其替换为HANDSET时,它被正确填充,尽管ID\u用户在没有删除下划线的情况下被正确填充


有什么建议吗?

我假设您在示例json中使用了“Handset”。反序列化似乎没有查看您的名称属性。您会注意到,您当前在属性名称本身上获得了匹配项。这就是为什么Handset和用户id会匹配。如果您使用

public Type_Of_Handset as Integer

它会起作用。

你怎么没有
Type“System.Data.DataTable”不支持数组的反序列化。
exception?类定义中的
Type\u of\u HANDSET
字段在哪里?