2015-04-08 4 views
0

Imagine Я создал класс фильтра, как это .......NET Web API: десериализации объект JSON с имуществом в виде списка (объекта)

Public Class Filter 

    Public Enum enuOperator 
     [EqualTo] = 0 
     [Like] = 1 
     [In] = 2 
     [StartsWith] = 3 
     [EndsWith] = 4 
     [NotNull] = 5 
     [Null] = 6 
    End Enum 

    Public Class FilterItem 

     Public Property [Field] As String 
     Public Property [Operator] As enuOperator 
     Public Property [Value] As Object 

     Public Sub New(filterField As String, filterOperator As enuOperator, filterValue As Object) 
      With Me 
       .Field = filterField 
       .Operator = filterOperator 
       .Value = filterValue 
      End With 
     End Sub 

     Public Sub New(filterField As String, filterValue As Object) 
      Me.New(filterField, enuOperator.EqualTo, filterValue) 
     End Sub 

    End Class 

    Public Property Filters As List(Of FilterItem) 

    Public Sub New() 
    End Sub 

    Public Sub New(filterItems As List(Of FilterItem)) 
     Me.Filters = filterItems 
    End Sub 

End Class 

Как вы можете видеть, этот класс «Фильтр» содержит свойство «Фильтры», которое в основном представляет собой массив (фактически список) объектов «FilterItem».

Теперь я могу послать экземпляр этого класса «Фильтр» на мой ASP.NET Web API, с помощью JSON, в результате чего в этих обозначениях:

{"Filters":[{"Field":"PrTy_Id","Operator":0,"Value":3}]} 

Однако на приемной стороне (в Интернете API), хотя он читает точно то же самое (как строка в формате JSON), и он корректно преобразуется в объект «Фильтр», но с свойством «Фильтры» как пустой список объектов «FilterItem»!

Очевидно, мой вопрос в том, как я могу прочитать свойство «Фильтры» и правильно преобразовать его в существующий список объектов?

+0

Пробовал преобразовать свойство _List (of FilterItem) _ в свойство «Фильтры» _ в свойство Array _FilterItem() _, но это не удалось. Тот же вопрос ... –

ответ

0

Фигурного это сам, когда вручную десериализации моей JSON строка объекта:

Видимо, я был просто пропущен пустых (без аргументов) New() конструктора в классе «FilterItem».

Смежные вопросы