首页 > 解决方案 > 反序列化列表带有使用 json.net 的字符串支持字段

问题描述

我有一个带有公共 List 属性的类。此类使用实体框架存储在 azure SQL DB 中 - 因此它不能存储变量。为了解决这个问题,我创建了支持字段“iUpdatedIdentifiers”,它是一个由“###”分隔的列表,代码如下:

        [JsonProperty("UpdatedIdentifiers")]
        [System.ComponentModel.DataAnnotations.Schema.NotMapped]
        public List<string> UpdatedIdentifiers { 
            get{
                try{
                    return iUpdatedIdentifiers.Split(@"###").ToList();
                }catch{
                    return new List<string>();
                }
            }
            set{
                string s = "";
                foreach (string x in value)
                {
                    s = s + x + "###";
                }
                iUpdatedIdentifiers = s;
            }
         }

        [JsonIgnore]
        public string iUpdatedIdentifiers {get;set;}       

当使用实体框架从数据库中检索对象并将对象序列化为 JSON 时,上面的代码可以正常工作。但是,当我尝试将以下 JSON 反序列化到类中时,列表始终为空。

{
   "UpdatedIdentifiers":[
      "edu308",
      "edu310",
      "edu312",
      ""
   ]
}

关于如何解决这个问题的任何想法?

标签: asp.net-corejson.netdeserialization

解决方案


推荐阅读