【问题标题】:Post JSon data to .NET Object.将 JSON 数据发布到 .NET 对象。
【发布时间】:2012-09-20 15:00:57
【问题描述】:

我正在学习 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()
    {
    }
}

【问题讨论】:

  • 看看 json.net 库 (json.codeplex.com)
  • 我听说过,但我正在尝试学习如何使用普通的 .NET 库来实现它,除非有经验的人告诉我不应该那样做。
  • 嗯,好的,JSON.net 库被广泛使用,应该更快更高效。
  • 谢谢!我可能会查一下,但我想先在没有额外库的情况下学习它。 :)

标签: asp.net json


【解决方案1】:

实际上我认为我唯一需要做的就是找出在 Request 对象中我可以找到我应该解析为 objekt 的实际字符串!我什么都找不到。

我找到了,从我使用的 Request 对象中获取它

string jsonData = new StreamReader(context.Request.InputStream, System.Text.Encoding.UTF8).ReadToEnd();

【讨论】:

    猜你喜欢
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2017-10-09
    • 2015-05-05
    • 1970-01-01
    相关资源
    最近更新 更多