0

JSONを学んでいます。私がやりたいことは、データを送り返し、それを .NET オブジェクトにすることだけです。

私はさまざまなチュートリアルを試してきましたが、それを理解していると思います。以下は私のコードです。私が理解していないのは、Jsonデータを保持しているのはリクエストオブジェクトで、どのように逆シリアル化するのですか?

私のJavascript

 $(function () {
        // Do your stuff here

        alert("wööööö");

    urlToHandler = 'JSonTestHandler.ashx';
    jsonData = '{ "FavoriteFood":"Pasta with butter and cheese", "FavoriteSport": "Submission Wrestling", "FavoriteGame": "Starcraft 2", "FavoriteMusic": "Hip Hop" }';
    $.ajax({
        url: urlToHandler,
        data: jsonData,
        dataType: 'json',
        type: 'POST',
        contentType: 'application/json',
        success: function (data) {
            setAutocompleteData(data.responseDateTime);
        },
        error: function (data, status, jqXHR) {
            alert('There was an error.');
        }
    }); // end $.ajax


});

私の JSON ハンドラー

[WebService(Namespace = "http://localhost:53243")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class JSonTestHandler : IHttpHandler, System.Web.SessionState.IReadOnlySessionState
{

    public void ProcessRequest(HttpContext context)
    {
        var json = new JavaScriptSerializer();

        var memoryStream = new MemoryStream();
        var serializer = new DataContractJsonSerializer(typeof(PersonalPreferences));

        memoryStream.Position = 0;

        var personalPreferenceFromJson = (PersonalPreferences)serializer.ReadObject(memoryStream);

    }


    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Jsonデータを保持する私のオブジェクト

        [DataContract]
public class PersonalPreferences
{
    [DataMember]
    public string FavoriteFood { get; set; }

    [DataMember]
    public string FavoriteSport { get; set; }

    [DataMember]
    public string FavoriteGame { get; set; }

    [DataMember]
    public string FavoriteMusic { get; set; }

    public PersonalPreferences()
    {
    }
}
4

1 に答える 1

0

実際、必要なのは、Requestオブジェクトのどこで、オブジェクトに解析する必要のある実際の文字列を見つけることができるかを把握することだけだと思います。何も見つかりません。

私はそれを見つけました、私が使用するRequestオブジェクトからそれを取得するために

string jsonData = new StreamReader(context.Request.InputStream, System.Text.Encoding.UTF8).ReadToEnd();
于 2012-09-21T06:47:49.180 に答える