當我有2種方法異常反序列化JSON
public static string SerializeObject<T>(T value)
{
if (value == null)
{
return null;
}
var dictionaryObject = new Dictionary<string, object> { { typeof(T).Name, value } };
var jsonString = JsonConvert.SerializeObject(dictionaryObject);
return jsonString;
}
和
public static T DeserializeObject<T>(string jsonString)
{
var objectValue = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonString);
return JsonConvert.DeserializeObject<T>(objectValue.Values.First().ToString());
}
當我反序列化JSON字符串類型
ConcurrentDictionary<KeyValuePair<long, long>, IList<string>>
我有一個例外:
Co uld不會將字符串'[1,1]'轉換爲字典鍵類型'System.Collections.Generic.KeyValuePair`2 [System.Int64,System.Int64]'。創建一個TypeConverter將字符串轉換爲鍵類型對象。 Path'[1,1]',第2行,第12位。
所以有人可以讓我看看它的正確工作方式嗎?
這裏是我的代碼:
var test = new ConcurrentDictionary<KeyValuePair<long, long>, IList<string>>();
test.TryAdd(new KeyValuePair<long, long>(1, 1), new List<string> { "Test" });
var se = SerializeObject(test);
var de = DeserializeObject<ConcurrentDictionary<KeyValuePair<long, long>, IList<string>>>(se);
爲什麼你把它變成一個字典? – Toxicable
你可能需要更多地解釋你想要完成的事情。不知道你想用Dictionary來解決什麼問題。 – d512
@ user1334007:我想反序列化一個JSON字符串到類型爲ConcurrentDictionary的對象,IList > –