Итак, у меня есть объект JSON, где один из членов строки имеют символы, такие как кавычки (") и апостроф (') в них.десериализации JSON строки, которые имеют кавычки и апострофы в них
Этот объект JSON возвращается . на третьей сторону API (который я не имею никакого контроля над) Это, как я вызвать этот API:
var client = new WebClient();
var data = new NameValueCollection();
var result = client.UploadValues(url, data);
MemoryStream ms = new MemoryStream(result);
так что, когда я пытаюсь deserialise этой строки следующим образом:
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MyClass));
MyClass obj= serializer.ReadObject(ms) as MyClass;
ms.Close();
Я получаю ошибка t hat говорит «{« Обнаружен неожиданный персонаж »& '."} ".
Когда я прочитал массив байтов в строку, используя следующий код, я вижу, что амперсандом и апостроф символы кодируются как «& # 039» и «& Quot;».
MemoryStream ms2 = new MemoryStream(result);
ms2.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms2);
string s = sr.ReadToEnd();
Так выглядит десериализатор не любит символы амперсанда в строке JSON. Что я делаю не так?
Вы пробовали декодировать html ответ? Если он возвращается из запроса на получение, вы можете получить такое поведение. – Gats
Да, он просто декодирует закодированный символ котировки фактической цитате, и это также разрушает JSON. Черт, если вы ... – ashwnacharya