.NET Web API : 将 JSON 对象反序列化为 属性 作为 List(Of object)
.NET Web API : deserialize JSON object with property as List(Of object)
假设我创建了一个像这样的过滤器 class......
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
如你所见,这个class"Filter"包含一个属性"Filters",它基本上是一个[=27=的数组(实际上是一个List) ] 个对象。
现在,我可以使用 JSON 将此 "Filter" class 的实例发送到我的 ASP.NET Web API,从而得到以下表示法:
{"Filters":[{"Field":"PrTy_Id","Operator":0,"Value":3}]}
然而,在接收端(在 Web API 本身),尽管它读出的内容完全相同(作为 JSON 格式的字符串),并且它正确地转换为 "Filter" 对象,但 属性 "Filters" 作为 "FilterItem" 个对象的空列表!
显然我的问题是,如何读出 "Filters" 属性,并将其正确转换为现有的对象列表?
我自己弄清楚了,当手动将我的 JSON 字符串反序列化为对象时:
显然,我只是在 "FilterItem" class.
假设我创建了一个像这样的过滤器 class......
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
如你所见,这个class"Filter"包含一个属性"Filters",它基本上是一个[=27=的数组(实际上是一个List) ] 个对象。
现在,我可以使用 JSON 将此 "Filter" class 的实例发送到我的 ASP.NET Web API,从而得到以下表示法:
{"Filters":[{"Field":"PrTy_Id","Operator":0,"Value":3}]}
然而,在接收端(在 Web API 本身),尽管它读出的内容完全相同(作为 JSON 格式的字符串),并且它正确地转换为 "Filter" 对象,但 属性 "Filters" 作为 "FilterItem" 个对象的空列表!
显然我的问题是,如何读出 "Filters" 属性,并将其正确转换为现有的对象列表?
我自己弄清楚了,当手动将我的 JSON 字符串反序列化为对象时:
显然,我只是在 "FilterItem" class.