我在查找从HttpHandler返回的JSON时遇到了一些麻烦。
返回的数据是这样的(根据Firebug):
[{"ID":2,"Name":"Fred Johnson","PhoneNumber":"444-444-4444","Notes":"Note Data","Representative":1,"StreetNumber":76547,"StreetName":"Juniper St.","City":"Burbank"}]
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);
}
}
<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
答案 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
。