我有一个C#类,其中包含Dictionary
的属性我有一个网页,其中包含我需要输入此词典的项目列表。
我的网站会将列表作为JSON发送到我的C#MVC应用程序,然后将JSONConvert.Deserial化JSON发送到我的Dictionary对象。
JsonConvert.Deserialise期待以下格式的JSON:
"MyVariableName":{
"Item 1":true,
"Item 2":true
}
我需要知道如何在JavaScript中构建这个对象。
到目前为止,我没有运气试过这个:
var items = [];
var v = $('#Items :input');
$.each(v, function(key, val) {
items.push({
key: val.value,
value: val.checked
});
});
JSON.stringify(v, null, 2);
但是这会返回json转换后的值:
"MyVariableName": [
{
"key": "Item 1",
"value": true
},
{
"key": "Item 2",
"value": true
}]
反过来,它不会反序列化到我的字典中。
由于
答案 0 :(得分:1)
不要制作阵列;做一个对象:
var items = {};
$('#Items :input').each(function(i, val) {
items[val.value] = val.checked;
});
答案 1 :(得分:0)
您必须使用javascript序列化
还有一件事你有不同的值int键,值对如string和Boolean类型,所以你必须使用Dictionary类型。
在JavaScriptSerializerobject中,您将获得System.Web.Extensions.dll,v4.0.30319程序集的System.Web.Script.Serialization名称空间。
var jSerializer = new JavaScriptSerializer();
var newList= jSerializer.Deserialize<Dictionary<string,object>>(newData);