У меня есть строка json, которая содержит строковый литерал как значение одного из объектов - PostData
.Deserialize json string, которая содержит один кавычек, используя C#
string json = "{\"PostData\": '{\"LastName\": \"O Corner\",\"FirstName\":\"Mark\",\"Address\":\"123 James St\"}'}";
Я пытаюсь десериализации JSON с помощью:
var obj = JsonConvert.DeserializeObject<dynamic>(json);
тогда, я могу использовать JSON строку значение PostData
как:
obj["PostData"].ToString()
Но, как только я получаю данные с одинарными кавычками в нем, например:
string json = "{\"PostData\": '{\"LastName\": \"O' Corner\",\"FirstName\":\"Mark\",\"Address\":\"123 James St\"}'}";
Я получаю исключение при десериализации. Как я могу избежать одиночной цитаты?
Я проверил SO для подобных вопросов, но ничего не получил. Я также попробовал один из раствора упомянутого ИНТА HIS thread:
JsonSerializerSettings settings = new JsonSerializerSettings
{
StringEscapeHandling = StringEscapeHandling.EscapeHtml
};
JsonConvert.SerializeObject(obj, settings);
Но я получаю Newtonsoft оленьей кожи содержу Defination для StringEscapeHandling
.
Кроме того, попытался сбежать с одного кадра в строке с \
: '{\"LastName\": \"O\' Corner\",\"FirstName\":\"Mark\",\"Address\":\"123 James St\"}'
, который также не работал.
I Предположим, что лучшим выбором является тщательная сериализация вашего объекта. Какая версия Newtonsoft.Json используется? 'StringEscapeHandling.EscapeHtml' существует в последней версии' 8.0.3' и отлично работает. –