我正在尝试反序列化 JSON 字符串
[{ "key" : "1", "value" : "open"}, {"key" : "2", "value" : "closed"}, {"key" : "3", "value" : "pending"}]
到 C# 数组中。我收到错误“没有为 'System.Array' 类型定义的无参数构造函数。” 我从数据库中提取 JSON,然后我想反序列化它,以便我可以访问值并使用用户传入的任何内容更新数据库中的另一个字段。这只是我正在尝试的一个示例,我需要它是动态的,而不是静态的,因为数据库中包含的 JSON 字符串可以是可变的。
我之前尝试过使用字典,但没有运气。所以我现在尝试一种不同的方法,将它反序列化为一个数组,然后我打算从数组中填充字典。
这是我目前正在尝试实施的方法……尽管我尝试了其他几种方法……
IList<Array> ValueArray = new JavaScriptSerializer().Deserialize<IList<Array>>(this.Parameter.ValueList);
//this.Parameter.ValueList just contains my JSON string
我在想如果不创建自己的课程就不能做到这一点?
当我尝试使用字典时,我尝试了这个
Dictionary<string, string> ValueList =
JsonConvert.DeserializeObject<Dictionary<string, string>>(this.Parameter.ValueList);
但收到此错误
“无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'System.Collections.Generic.Dictionary`2[System.String,System.String]',因为该类型需要 JSON 对象(例如 {” name":"value"}) 以正确反序列化。要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化的类型更改为数组或实现集合接口(例如 ICollection、IList),例如可以从 JSON 数组反序列化的 List。也可以将 JsonArrayAttribute 添加到类型以强制它从 JSON 数组反序列化。路径'',第 1 行,位置 1。
所以我开始尝试使用数组。