我使用NewtonSoft JSON.Net。我有一个namevalue对的集合,我需要得到一个看起来像的json { “担架床”: “1”, “MAC”: “2”, “担架床”: “8”} 请注意,我在这里可以有重复的名称。
我有两个选择 a)我可以使用Dictionary作为我的底层集合,当我这样做时,我得到了所需的结果,但我无法添加重复的密钥。 b)我有一个KeyValuePair列表,但在这种情况下,结果json不在我想要的结构中。
知道如何获得理想的结果吗?谢谢!
var listData = new List<KeyValuePair<string, string>>();
listData.Add(new KeyValuePair<string, string>("cot", "1"));
listData.Add(new KeyValuePair<string, string>("mat", "1"));
listData.Add(new KeyValuePair<string, string>("cot", "2"));
var dicData = new Dictionary<string, string>();
dicData.Add("cot", "1");
dicData.Add("mat", "1");
Console.WriteLine("Output from LIST");
Console.WriteLine(JArray.FromObject(listData));
Console.WriteLine();
Console.WriteLine("Output from Dictionary");
Console.WriteLine(JObject.FromObject(dicData));
LIST的输出
[
{
"Key": "cot",
"Value": "1"
},
{
"Key": "mat",
"Value": "1"
},
{
"Key": "cot",
"Value": "2"
}
]
字典输出
{
"cot": "1",
"mat": "1"
}
答案 0 :(得分:0)
JSON
'{"cot":"1","mac":"2","cot":"8"}'
将解析为javscript对象:
{"cot":"8","mac":"2"}
。
尝试
dicData.Add("cot", "8")
看看它是否能得到你想要的东西。
您还可以尝试连接字符串,直到获得所需的JSON。 像
var jsonOutput = "{"
//for each key value...
jsonOutput += "key : "+ value.toString + ","
//...etc
//then remove the last trailing comma, and add a "}"