繁体   English   中英

ASP.NET Web服务JSON数组

[英]ASP.NET Web Service JSON Arrays

我需要一些帮助我的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; }
}

我的页面包含:

<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);
});

到目前为止没有工作..

你可以收紧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监视请求/响应,以确保您发送和接收的内容符合您的预期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM