我在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对象类?
答案 0 :(得分:1)
wcf使用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
进行序列化。