无法将Json对象反序列化为字典

本文关键字:反序列化 字典 对象 Json | 更新日期: 2023-09-27 18:19:14

我有一个JSON对象创建在我的jquery文件

{"showmiddleinitial":"True","showprefix":"True","showsuffix":"True"}

现在我正在使用AJAX调用发送这个对象到我的控制器通过解析它

$.parseJSON({"showmiddleinitial":"True","showprefix":"True","showsuffix":"True"})

{"showmiddleinitial":"True","showprefix":"True","showsuffix":"True"}

对于上面提到的两个场景,我得到以下错误

Cannot deserialize JSON object into type 'System.Collections.Generic.List`1[System.Collections.Generic.Dictionary`2[System.String,System.String]]'.

Error converting value "{"showmiddleinitial":"True","showprefix":"True","showsuffix":"True"}" to type 'System.Collections.Generic.List`1[System.Collections.Generic.Dictionary`2[System.String,System.String]]'.
有谁能给我指明正确的方向吗?我正在使用ASP.net与c#, MVC和Jquery

我不能在我的c#代码做太多,因为这是静态的,因此我只能依靠jquery。c#中的对象类型为

List<Dictionary<string, string>> attributesList

嗯…我找到了问题的根源,并注意到发送

$.parseJSON([{"showmiddleinitial":"True","showprefix":"True","showsuffix":"True"}])

解决这个问题。有谁能告诉我如何从jquery中添加方括号到JSON对象,当然不需要手动添加它们

无法将Json对象反序列化为字典

json字符串值应该用引号括起来,如

string json = @"{""key1"":""value1"",""key2"":""value2""}";

then call

Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);