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

时间:2013-06-21 06:10:27

标签: c# jquery json serialization

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

{"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,ofcourse添加方括号到JSON对象,而无需手动添加它们

1 个答案:

答案 0 :(得分:0)

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

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

然后致电

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