簡體   English   中英

C#將json反序列化為字典並反向KV

[英]C# deserialize json into dictionary and reverse KV

我正在嘗試反序列化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", ... }

最簡單的方法是從反序列化的字典中創建另一個字典:

JsonConvert.DeserializeObject<Dictionary<string,string>>(json)
    .ToDictionary(x => x.Value, x => x.Key);
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);
            });

這是可以實現此目的的簡化方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM