我有一个班级:
Public Class ExtraInfo
Property extratypes As String
End Class
我提交了一个表单,值assign是string,从表单提交的数据是字符串而不是数组:
extratypes = '1,2';
现在当我以json:
保存到数据库中时Newtonsoft.Json.JsonConvert.SerializeObject(edited)
它在json中给我这个:
{"extratypes":"1,2"}
如何在保存之前将其操作为字符串数组,如下所示:
{"extratypes":["1","2"]}
答案 0 :(得分:0)
在模型中使用数组:
Public Class ExtraInfo
Property extratypes() As String
End Class
然后Split
在将用户输入分配给此属性之前来自用户输入的值。
答案 1 :(得分:0)
您可以使用代理属性将字符串转换为数组或从数组转换字符串。使用[JsonIgnore]
和[JsonProperty("extratypes")]
代理装饰原始属性。如果方便的话,您可以将代理属性设为私有,只要它具有[JsonProperty]
属性,Json.NET就会对其进行序列化:
Public Class ExtraInfo
<JsonIgnore()> _
Public Property extratypes As String
<JsonProperty("extratypes")> _
Private Property extratypesArray As String()
Get
If extratypes Is Nothing Then
Return Nothing
End If
Return extraTypes.Split(","c)
End Get
Set(ByVal value As String())
If value Is Nothing Then
extratypes = Nothing
Else
extratypes = String.Join(","c, value)
End If
End Set
End Property
End Class
示例fiddle。
其他选项是编写自己的JsonConverter
。