Десериализовать объект JSON с именем свойства как номером в объект в VB.NET - PullRequest
1 голос
/ 23 мая 2019

У меня ниже объект 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 Ответ

1 голос
/ 24 мая 2019

использует DataContractJsonSerializer, поэтому вам нужно будет аннотировать ваш тип 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...