将具有属性名称作为数字的JSON对象反序列化为VB.NET中的对象

时间:2019-05-23 14:59:55

标签: json vb.net wcf object properties

我在JSON对象下面

myvalues : {
     0 : "value0",
     1 : "value1",
     2 : "value2",
     3 : "value3"
}

我想将此JSON对象绑定到vb.net类对象中,以作为WCF OperationContract方法的输入-但我无法将数字属性名称定义为数字。我收到错误消息:

  

属性名称上应包含标识符,因为属性名称不能为数字

使用以下内容:

Public class myvalues_class

    public property 0 as string
    public property 1 as string
    public property 2 as string
    public property 3 as string

end class

如何将该JSON对象转换为vb.net对象类?

1 个答案:

答案 0 :(得分:1)

使用DataContractJsonSerializer,因此您需要使用data contract attributes注释Values类型,以将一些有效命名的vb.net属性映射到JSON数字属性名称,例如像这样:

<System.Runtime.Serialization.DataContract> _
Public Class Values
    <DataMember(Name:="0")> _
    Public Property r As Integer

    <DataMember(Name:="1")> _
    Public Property g As Integer

     <DataMember(Name:="2")> _
    Public Property b As Integer

    <DataMember(Name:="3")> _
    Public Property a As Integer
End Class

请注意,数据合同序列化程序是opt-in,因此您必须标记所有属性以使用DataMemberAttribute进行序列化。