Ich habe eine JSON-Zeichenfolge, die ein Zeichenfolgenliteral als Wert eines Objekts - PostData
enthält.Deserialize JSON Zeichenfolge, die singlequote enthält C#
string json = "{\"PostData\": '{\"LastName\": \"O Corner\",\"FirstName\":\"Mark\",\"Address\":\"123 James St\"}'}";
Ich versuche, die json deserialisieren mit:
var obj = JsonConvert.DeserializeObject<dynamic>(json);
dann kann ich meine Json String-Wert von PostData
wie verwenden:
obj["PostData"].ToString()
Aber sobald ich die Daten mit einfachen Anführungszeichen darin, wie zum Beispiel:
string json = "{\"PostData\": '{\"LastName\": \"O' Corner\",\"FirstName\":\"Mark\",\"Address\":\"123 James St\"}'}";
Ich bekomme eine Ausnahme bei der Deserialisierung. Wie kann ich dem einfachen Zitat entkommen?
Ich habe SO für ähnliche Probleme überprüft, aber nichts funktioniert. Ich habe auch versucht, eine der Lösung int seine thread erwähnt:
JsonSerializerSettings settings = new JsonSerializerSettings
{
StringEscapeHandling = StringEscapeHandling.EscapeHtml
};
JsonConvert.SerializeObject(obj, settings);
Aber ich Newtonsoft doesnot defination enthalten für StringEscapeHandling
.
Auch versucht, die singlequote mit in der Zeichenfolge mit \
: '{\"LastName\": \"O\' Corner\",\"FirstName\":\"Mark\",\"Address\":\"123 James St\"}'
zu entkommen, die auch nicht funktioniert.
I Angenommen, die beste Wahl besteht darin, das Objekt zuerst sorgfältig zu serialisieren. Welche Version von Newtonsoft.Json wird verwendet? 'StringEscapeHandling.EscapeHtml' existiert in der neuesten' 8.0.3' Version und funktioniert gut. –