Jquery JSON和C#:从C#HttpHandler读取JSON回复

时间:2013-04-24 18:23:31

标签: c# jquery json

我在查找从HttpHandler返回的JSON时遇到了一些麻烦。

返回的数据是这样的(根据Firebug):

[{"ID":2,"Name":"Fred Johnson","PhoneNumber":"444-444-4444","Notes":"Note Data","Representative":1,"StreetNumber":76547,"StreetName":"Juniper St.","City":"Burbank"}]

HttpHandler代码

public class RequestHandler : IHttpHandler
{
    public RequestHandler()
    { }

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        var thisID = Convert.ToInt32(context.Request["Id"]);
        List<WW.Data.Customer> thisCustomer = WW.Business.Customer.getCustomerByID(thisID);
        JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
        string lookedUpCustomer = javaScriptSerializer.Serialize(thisCustomer);
        context.Response.ContentType = "text/html";
        context.Response.Write(lookedUpCustomer);
    }
}

JQUERY CODE

<script type="text/javascript">
    function sendData() {
        alert("start");
        var thisID = $("#Text1").val()
        var arr = { ID: thisID};
        $.ajax(
           {
               url: "jsonpost.ww",
               type: "POST",
               data: arr,
               dataType: 'json',
               async: true,
               success: function (data) {
                   $("#Text2").val = data.Name;
                   $("#Text3").val = data.StreetNumber;
                   $("#Text4").val = data.StreetName;
                   $("#Text5").val = data.City;
                   $("#Text6").val = data.PhoneNumber;
               }
           }
        );
        alert("end");
    }
</script>

基本上,在成功返回时,我无法读取JSON字符串数据。任何人都会看到任何导致这种情况的事情吗?

感谢任何帮助。

谢谢, CSS

2 个答案:

答案 0 :(得分:3)

您获得的json响应应位于()

     $("#Text2").val(data.Name);
     $("#Text3").val(data.StreetNumber);
     $("#Text4").val(data.StreetName);
     $("#Text5").val(data.City);
     $("#Text6").val(data.PhoneNumber);

这是将值分配给inputs的正确方法。

答案 1 :(得分:2)

您的JSON格式化为您需要的对象是数组的第一个元素。因此,在成功回调中,您需要执行data.name而不是data[0].name