私は単純なクラスを持っています:
public class site
{
public string URL { get; set; }
}
これは、http ハンドラー内に存在します。現在、json をこのハンドラーに投稿し、文字列から URL を取得するために逆シリアル化しようとしています。ただし、デシリアライズ部分に問題があります。
次のようにフォーマットされたjsonを持つ文字列「jsonString」があります。
[{"URL":"http://www.google.com/etc/"}]
デシリアライズのコードは次のとおりです。
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
string jsonString = String.Empty;
HttpContext.Current.Request.InputStream.Position = 0;
using (StreamReader inputStream = new StreamReader(HttpContext.Current.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}
site currSite = new site();
currSite = jsonSerializer.Deserialize<site>(jsonString);
//set response types
HttpContext.Current.Response.ContentType = "application/json";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
//send response
HttpContext.Current.Response.Write(jsonSerializer.Serialize(currSite.URL));
次に、currSite.URL を使用して応答を送信しようとしていますが、失敗しています。ここで何が欠けていますか?currSite.URL の代わりに jsonString の応答を送信すると機能するため、逆シリアル化部分にあるとかなり確信しています。