如何在c#中将对象添加到字典中?

时间:2013-07-25 17:42:54

标签: c# json

我需要以下列格式创建JSON结构:

{
    "test": [
        {
            "mode": "2",
            "test": "test3"
        },
        {
            "mode": "1",
            "test": "test3"
        }
    ]
}

因此,无论何时创建JSON结构,都应将其附加到test元素。

所以最初我只有值:

string json=@"{""testfun"": [ {""mode"": ""2"", ""test"": ""test3"" }  ]}";

Dictionary<string, object> objtestnew2 = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(json);

那么当我获得现有字典元素的下一个JSON结构时,如何追加?

2 个答案:

答案 0 :(得分:0)

将您的字典创建拆分,并将反序列化拆分为两个不同的步骤。

第一次调用该方法时,应查看字典是否存在,以及是否存在字典。如果它确实存在,那么您可以将反序列化的数据附加到该字典。

答案 1 :(得分:0)

您可以反序列化第二个字典,然后将其合并到第一个字典中。最简单的方法是一个简单的循环:

string json=@"{""testfun"": [ {""mode"": ""2"", ""test"": ""test3"" }  ]}";
Dictionary<string, object> dict = (new JavaScriptSerializer()).Deserialize<Dictionary<string, object>>(json);

string json2=@"{""testfun"": [ {""mode"": ""1"", ""test"": ""test3"" }  ]}";
Dictionary<string, object> dict2 = (new JavaScriptSerializer()).Deserialize<Dictionary<string, object>>(json2);

// loop through and update/add the items to the first dictionary
foreach(var item in dict2)
    dict1[item.Key] = item.Value;