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