Правильный способ обработки символа амперсанда в строке JSON, отправляемой в веб-сервис REST

в порядке,

Я используюSystem.Runtime.Serialization иDataContractJsonSerialization.

Проблема в том, что в запросе я отправляю значение свойства с& характер. Сказать,AT&Tи я получаю ответ с ошибкой:Invalid JSON Data.

Я думал, что побег будет происходить внутри библиотеки, но теперь я вижу, что сериализация осталась без изменений& характер.

Да, для формата JSON это действительно. Но это будет проблемой для моего запроса POST, так как мне нужно отправить его на сервер, который, если содержит амперсанд, ответит с ошибкой, поэтому я здесь.

HttpUtility.HtmlEncode находится вSystem.Web библиотека и поэтому путь используетUri.EscapeUriString, Я сделал это, чтобы попробовать, но в любом случае, и без него все запросы работают нормально, за исключением амперсанда в значении.

РЕДАКТИРОВАТЬ:HttpUtility класс перенесен в Windows Phone SDK, но предпочтительный способ кодирования строки должен бытьUri.EscapeUriString.

Первой мыслью было испачкать руки и начать заменять специальный символ, который вызвал бы проблему на сервере, но, мне интересно, есть ли другое решение, которое я должен сделать, чтобы это было эффективно и «правильно»?

Я должен сказать, что я использую

// Convert the string into a byte array.
byte[] postBytes = Encoding.UTF8.GetBytes(data);

Чтобы преобразовать JSON вbyte[] и написать вStream, А также,

request.ContentType = "application/x-www-form-urlencoded";

КакWebRequest.ContentType.

Итак, я напутал по какой-то причине или что-то упустил?

Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос