我有一个看起来像这样的对象:
Public Class ExportOptions
Public Sub New()
CategoryIDs = {New Guid("30ndd837-7a2c-477c-b892-67f129f7af4e")}
End Sub
Property CategoryIDs As IEnumerable(Of Guid)
End Class
然后我就像这样反序列化JSON:
Newtonsoft.Json.JsonConvert.DeserializeObject(Of ExportOptions)(JSONString)
问题是JSON中的值没有进入CategoryIDs属性?相反,我只剩下构造函数中使用的单个值。
如果我将CategoryID更改为List(Guid),那么当我需要覆盖当前项时,新的categoryID会添加到列表中。
构造函数中添加的值是默认值,如果客户端没有传递任何内容,则必须存在该值。
答案 0 :(得分:1)
最终我自己管理这个: -
Newtonsoft.Json.JsonConvert.DeserializeObject(Of AmazonSimpleExportOptions)(JSONString,
New Newtonsoft.Json.JsonSerializerSettings With {
.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace})
答案 1 :(得分:0)
Public Class ExportOptions
Private defaultGuid As New Guid("30ndd837-7a2c-477c-b892-67f129f7af4e")
Private cats as List(Of Guid) = {defaultGuid}
Public Sub New()
End Sub
Property CategoryIDs As List(Of Guid)
Get
Return cats
End Get
Set(ByVal Value As List(Of Guid))
cats = Value
If cats.Count = 0 Then cats.Add(defaultGuid)
End Set
End Property
End Class