JSON 反序列化为 json 中缺少键的类 [字符串可以是单个字符串或列表字符串]

2023-12-06

我有以下课程

    [Serializable]
    public class filters
    {
        public List<string> key1 { get; set; }
        public List<string> key2 { get; set; }
        public List<string> key3 { get; set; }
    }

json 字符串是

[{"key1": "key1value"}]

反序列化就像

filters objFilter = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<filters>(json);

json 字符串可能包含 key1、key2 和 key3,也可能不包含。

key1、key2、key3 可以是单个字符串或数组

那么我该如何反序列化它。

它主要是抛出一个错误。

不支持类对数组进行反序列化

请指教 谢谢


你的代码的问题是你的json不正确

在控制台应用程序中输入以下代码,看看会得到什么

var filtr = new filters { key1 = new List<string>() { "key1value" } };
var json = new JavaScriptSerializer().Serialize(filtr);
var text = "{\"key1\":[\"key1value\"]}";
filtr = new JavaScriptSerializer().Deserialize<filters>(text);

或者将您的 json 更改为以下内容

json 中的“[]”表示它是一个数组,因此您尝试反序列化数组以输入过滤器

{"key1":["key1value"]}

那么你的反序列化应该可以工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON 反序列化为 json 中缺少键的类 [字符串可以是单个字符串或列表字符串] 的相关文章