1

我有一个包含 Dictionary 属性的 C# 类

我有一个网页,其中包含我需要放入这本词典的项目列表。

我的网站会将列表作为 JSON 发送到我的 C# MVC 应用程序,然后将 JsonConvert.Deserialise 到我的 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
    }]

这又不会反序列化到我的字典中。

谢谢

4

2 回答 2

1

不要做一个数组;做一个对象:

var items = {};
$('#Items :input').each(function(i, val) {
    items[val.value] = val.checked;
});
于 2013-06-20T14:32:39.757 回答
0

您必须使用 javascript 序列化

还有一件事,你有不同的值 int 键,值对,如字符串和布尔类型,所以你必须使用字典类型。

和 JavaScriptSerializerobject 你将获得 System.Web.Extensions.dll,v4.0.30319 程序集的 System.Web.Script.Serialization 名称空间。

 var jSerializer = new JavaScriptSerializer();
 var newList= jSerializer.Deserialize<Dictionary<string,object>>(newData);
于 2013-06-20T14:41:29.807 回答