2017-10-20 84 views
0

我有映射的字符串鍵字符串數組動態JObject。但是我有麻煩反序列化它。每次都會收到一個未捕獲的運行時異常。如何反序列化字典<字符串,字符串[]>在C#?

var mapStringToStrings =JsonConvert.DeserializeObject<Dictionary<string,string[]>>(payload.Map);

這就是JObject包含

{{ 
    "c637c0bf-42ec-4f33-a679-5a220260db8e": [ 
     "dfe7514d-1e42-4c01-ac48-4557e4e34eb3" 
    ] 
    }} 

這是錯誤:

The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.Dictionary<string,string[]>>(string)' has some invalid arguments

幫助?

+0

「payload.Map」究竟是什麼?它是一個「字符串」嗎? – juharr

回答

0

動態JObject不會很好地反序列化,如果它是一個複雜的對象 - 我將它傳遞給解串器之前呼籲payload.map的ToString()簡單地解決。

作品:

var mapStringToStrings = JsonConvert.DeserializeObject<Dictionary<string,string[]>>(payload.map.ToString());

3

你JObject不是有效的JSON,因爲它有一個額外對周圍{}。以下是有效的JSON,反序列化爲Dictionary<string, string[]>

{ 
    "c637c0bf-42ec-4f33-a679-5a220260db8e": [ 
    "dfe7514d-1e42-4c01-ac48-4557e4e34eb3" 
    ] 
} 
相關問題