Richtige Methode zum Behandeln des kaufmännischen Und-Zeichens in JSON-Zeichenfolgen, die an den REST-Webdienst gesendet werden

OK,

Ich benutze dieSystem.Runtime.Serialization und dasDataContractJsonSerialization.

Das Problem ist, dass ich in der Anfrage einen Wert einer Eigenschaft mit dem sende& Charakter. Sagen,AT&Tund ich erhalte eine Antwort mit Fehler:Invalid JSON Data.

Ich dachte, dass die Flucht innerhalb der Bibliothek erfolgen würde, aber jetzt sehe ich, dass die Serialisierung vom kaufmännischen Und unberührt bleibt& Charakter.

Ja, für ein JSON-Format ist dies gültig. Aber es wird ein Problem für meine POST-Anfrage sein, da ich dies an einen Server senden muss, der, wenn er ein kaufmännisches Und enthält, fehlerhaft antwortet, daher bin ich hier.

HttpUtility.HtmlEncode ist in demSystem.Web Bibliothek und so ist der Weg zu gehen mitUri.EscapeUriString. Ich habe dies versucht, aber trotzdem, und ohne es funktionieren alle Anfragen gut, außer ein kaufmännisches Und ist in einem Wert.

BEARBEITEN:HttpUtility class ist auf das Windows Phone SDK portiert, die bevorzugte Methode zum Codieren einer Zeichenfolge sollte jedoch weiterhin bestehen bleibenUri.EscapeUriString.

Der erste Gedanke war, sich die Hände schmutzig zu machen und das Sonderzeichen zu ersetzen, das ein Problem auf dem Server verursachen würde. Aber, ich frage mich, gibt es eine andere Lösung, die ich tun sollte, dass es effizient und 'richtig' wäre?

Ich sollte sagen, dass ich benutze

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

So konvertieren Sie den JSON in einenbyte[] und schreibe an dieStream. Und,

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

Als dieWebRequest.ContentType.

Bin ich aus einem Grund durcheinander oder etwas, das ich vermisse?

Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage