我正在尝试反序列化json并以最小的复杂度反转键/值。我有一个输入json,看起来像:
{
"1":"apple",
"2":"banana",
"3":"orange",
"4":"grape"
}
并希望将其序列化为Dictionary<string,string>
,但要反转字典,以便结果为key
,整数为value
。有Newtonsoft.Json
的任何方法吗?
var obj = JsonConvert.DeserializeObject<Dictionary<string,string>>(json);
// obj.Keys = { "1", "2", "3" }, but I want them to be { "apple", "banana", ... }
答案 0 :(得分:3)
最简单的方法是从你反序列化的字典创建另一个字典:
JsonConvert.DeserializeObject<Dictionary<string,string>>(json)
.ToDictionary(x => x.Value, x => x.Key);
答案 1 :(得分:0)
var obj = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
Dictionary<string, string> temp = new Dictionary<string, string>();
Parallel.ForEach(obj, (item)=> {
temp.Add(item.Value, item.Key);
});
这是您可以实现此目的的简化方法。