创建将转换为JSON然后转换为Dictionary <string,bool =“”> </string,>的javascript对象

时间:2013-06-20 14:20:53

标签: c# jquery json dictionary

我有一个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
    }]

反过来,它不会反序列化到我的字典中。

由于

2 个答案:

答案 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);