Ich habe 2 MethodenAusnahme beim Deserialisieren 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;
}
und
public static T DeserializeObject<T>(string jsonString)
{
var objectValue = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonString);
return JsonConvert.DeserializeObject<T>(objectValue.Values.First().ToString());
}
Wenn ich eine json Zeichenfolge mit Typ deserialisieren
ConcurrentDictionary<KeyValuePair<long, long>, IList<string>>
Ich habe eine Ausnahme:
Co Die Zeichenkette '[1, 1]' darf nicht in den Dictionary-Schlüsseltyp 'System.Collections.Generic.KeyValuePair`2 [System.Int64, System.Int64]' konvertiert werden. Erstellen Sie einen TypeConverter, um von der Zeichenfolge in das Schlüsseltypobjekt zu konvertieren. Pfad '[1, 1]', Zeile 2, Position 12.
Kann mir also jemand den richtigen Code zeigen, damit er funktioniert?
Hier ist mein Code:
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);
warum Sie verwandeln es in ein Wörterbuch? – Toxicable
Sie müssen möglicherweise etwas mehr über das, was Sie erreichen möchten, erklären. Nicht sicher, welches Problem Sie mit dem Wörterbuch lösen möchten. – d512
@ user1334007: Ich versuche deserialize eine JSON-Zeichenfolge zu einem Objekt, das Typ ConcurrentDictionary hat, IList > –