javascript – 如何将枚举数组序列化为Json字符串数组?
作者:互联网
参见英文答案 > Serialize a container of enums as strings using JSON.net 2个
基于迭戈在这个问题中最高投票回答的未答复评论:
JSON serialization of enum as string
所以对于一个枚举:
public enum ContactType
{
Phone = 0,
Email = 1,
Mobile = 2
}
而对于例如.财产:
//could contain ContactType.Phone, ContactType.Email, ContactType.Mobile
IEnumerable<ContactType> AvailableContactTypes {get;set;}
对于像JSON这样的东西:
{ContactTypes : ['Phone','Email','Mobile']}
代替
{ContactTypes : [0,1,2]}
和普通的JavaScriptSerializer一样吗?
解决方法:
我总是发现在这些情况下添加额外属性比尝试更改json.net解析器的行为更容易.
[JsonIgnore]
IEnumerable<ContactType> AvailableContactTypes {get;set;}
IEnumerable<string> AvailableContactTypesString
{
get { return AvailableContactTypes.Select(c => c.ToString()); }
}
当然,如果你需要反序列化,你也需要在该属性上设置一个setter.
set { AvailableContactTypes = value
.Select(c => Enum.Parse(typeof(ContactType), c) as ContactType); }
标签:javascript,json-net,javascriptserializer 来源: https://codeday.me/bug/20190629/1328823.html