ASP.. NET Web服务JSON数组

本文关键字:JSON 数组 服务 Web NET ASP | 更新日期: 2023-09-27 18:18:37

我需要一些帮助与我的web服务和json调用。卡住试图得到返回的数据,我已经成功地用字符串和对象。但不是数组…

我的Web服务包含:

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetSearchCriteria()
{
    var js = new JavaScriptSerializer();
    var obj = HttpContext.Current.Session["mysessionname"];
    if (obj == null)
    {
        var result = new Criteria[] 
        { 
            new Criteria() { Key = Guid.NewGuid(), Operator = "=", ColumnName = "CheckID", Value = "" }
        };
        var serial = js.Serialize(result);
        return serial;
    }
    else
    {
        var serial = js.Serialize((Criteria[])obj);
        return serial;
    }
}

标准是:

[Serializable]
public class Criteria
{
    public Guid Key { get; set; }
    public string ColumnName { get; set; }
    public string Operator { get; set; }
    public string Value { get; set; }
}

My Page Contains:

<script type="text/javascript">
    function RefreshCriteria() {
        $.ajax({
            type: 'POST',
            url: '<%= System.Web.VirtualPathUtility.ToAbsolute("~/Services/WebService.asmx/GetSearchCriteria") %>',
            dataType: 'json',
            beforeSend: function (xhr) {
                xhr.setRequestHeader("Content-type",
                           "application/json; charset=utf-8");
            },
            success: function (data) {
                $(data).each(function (i) {
                    var obj = data[i];
                    alert(obj);
                });
            }
        });
    }
    $(document).ready(function () {
        RefreshCriteria();
    });
</script>

每次我得到的都是未定义的。试着做

$(data).each(function (i) {
  var obj = data[i];
  alert(obj);
});

$(data).each(function (i, obj) {
  alert(obj);
});
$(data).each(function (i) {
  alert(this);
});

ASP.. NET Web服务JSON数组

你可以收紧ajax

$.ajax({
   type: 'POST',
   url: '*you need a url here*',
   dataType: 'json',
   success: function (data) {
      $(data).each(function (index, item) {
         console.log(item);
      });
   }
});

下一步使用firebug或fiddler监视请求/响应,以确保您发送和接收的内容是您所期望的。