0

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

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

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

所以最初我只有这个值:

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

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

那么,当我将下一个 JSON 结构添加到现有字典元素时,我该如何追加呢?

4

2 回答 2

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;
于 2013-07-25T18:34:47.773 回答
0

将字典的创建和反序列化分为两个不同的步骤。

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

于 2013-07-25T17:49:37.223 回答