だから、私は、文字列のメンバーの一人が、それらに引用符( ")とアポストロフィ( ')のような文字を持っている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 "{"予期しない文字 '&'が発生しました。 "}"
Iは、以下のコードを使用して、文字列にバイト配列を読んだとき、私は アンパサンドとアポストロフィ文字は「&#039」として符号化されていることがわかり「& QUOT;」。
MemoryStream ms2 = new MemoryStream(result);
ms2.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms2);
string s = sr.ReadToEnd();
デシリアライザでは、JSON文字列のアンパサンド文字が気に入らないようです。私は何を間違えているのですか?
レスポンスをhtmlでデコードしようとしましたか? get要求から返されている場合は、この種の動作を取得できます。 – Gats
はい、エンコードされた引用符を実際の引用符にデコードするだけで、JSONも分割されます。あなたがしているならば... – ashwnacharya