£ 記号を含む JSON 文字列を逆シリアル化しようとすると、例外が発生します。
タイプ RD.Details のオブジェクトのデシリアライズ中にエラーが発生しました。「�19.95 1 人あたり」に無効な UTF8 バイトが含まれています。
ログに記録する文字列は次のとおりです。
{
"Promotions":[
{
"Name":"Traditional Afternoon Tea £19.95 Per Person",
"PromotionId":20175,
"Quantity":2
}
]
}
これは私がデシリアライズする方法です:
var responseJsonSerializer = new DataContractJsonSerializer(typeof(TR));
Stream serializedStream;
string serializedString;
byte[] buffer;
using (WebResponse webResponse = webRequest.GetResponse())
{
serializedStream = webResponse.GetResponseStream();
using (StreamReader sr = new StreamReader(serializedStream))
{
serializedString = sr.ReadToEnd();
}
Report.Log("Message Response JSON Object: " + serializedString);
buffer = Encoding.Default.GetBytes(serializedString);
using (MemoryStream stream = new MemoryStream(buffer))
{
return responseJsonSerializer.ReadObject(stream) as TR;
}
}
£ 記号が無効な utf8 と見なされる理由がわかりません。私が見る限り、それには何の問題もありません。