2017-04-21 67 views
0

我期待將JSON字符串(如下所示)轉換爲字典。 [{'Key':'superuser','Value':'s'}]JSON到詞典

理想情況下,我想將Dictionary [0]轉換爲[superuser] = s。

但我最終在字典中有兩個元素而不是一個。 任何人都可以指導我嗎?

目前代碼

JsonConvert.DeserializeObject<List<Dictionary<string,string>>>(json) 

感謝

+3

「但是我最終在字典中有兩個元素,而不是一個。」這表明你已經有了你正在嘗試的代碼。請提供[mcve]。 –

+0

嗨,喬恩,我已經添加了當前的代碼。 –

+0

爲什麼要將它反序列化爲字典的*列表?當然,它實際上是一個鍵/值對的列表,您要將其反序列化爲* single *字典。 –

回答

1

您目前正在反序列化它作爲一個字典列表,當你只有真正想要一個字典。

可能有更乾淨的方式來做到這一點,但是您可以將它反序列化爲鍵值對的列表,然後將其轉換爲字典。示例代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using Newtonsoft.Json; 

public class Test 
{ 
    static void Main() 
    { 
     string json = "[{'Key':'x','Value':'y'},{'Key':'a','Value':'b'}]"; 

     var dictionary = JsonConvert.DeserializeObject<List<KeyValuePair<string, string>>>(json) 
      .ToDictionary(pair => pair.Key, pair => pair.Value); 

     Console.WriteLine(dictionary["x"]); // y 
     Console.WriteLine(dictionary["a"]); // b 
    } 
} 
+0

謝謝喬恩。那樣做了。 –