C# 如何将对象数组传递为jQuery Ajax所理解的格式?

C# 如何将对象数组传递为jQuery Ajax所理解的格式?,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我有一个asmx web服务,它具有以下功能: [WebMethod] public List<Tag> GetTags() { List<Tag> TagList = new List<Tag>(); DataTable dt = Helpers.Tags.GetTags(); foreach (DataRow dr in dt.Rows) {

我有一个asmx web服务,它具有以下功能:

    [WebMethod]
    public List<Tag> GetTags()
    {
        List<Tag> TagList = new List<Tag>();

        DataTable dt = Helpers.Tags.GetTags();

        foreach (DataRow dr in dt.Rows)
        {
            Tag t = new Tag();
            t.TagName = dr["Tag"].ToString();
            t.TagDescription = dr["Description"].ToString();
            TagList.Add(t);
        }

        return TagList;
    }
方法返回标记对象的对象列表

我在jQuery中有一个自动完成函数,它接受以下格式的数组:

    var availableTagsCustom = [
        {
            tagName: 'Ruby',
            tagDescription: 'Ruby is an open-source dynamic...'
        },
        {
            tagName: 'Scala',
            tagDescription: 'Scala is a general purpose programming language...'
        },
        {
            tagName: 'Scheme',
            tagDescription: 'Scheme is a functional programming language....'
        }
    ];
如何将收到的“标记对象对象的对象列表”转换为这种格式


谢谢。

首先,您需要在服务类级别设置
[System.Web.Script.Services.ScriptService]
属性,以便能够获得
Json
结果

其次,您需要在方法上应用
[ScriptMethod(UseHttpGet=true,ResponseFormat=ResponseFormat.Json)]

[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public List<Tag> GetTags()
{
    List<Tag> TagList = new List<Tag>();

    DataTable dt = Helpers.Tags.GetTags();

    foreach (DataRow dr in dt.Rows)
    {
        Tag t = new Tag();
        t.TagName = dr["Tag"].ToString();
        t.TagDescription = dr["Description"].ToString();
        TagList.Add(t);
    }

    return TagList;
}
[WebMethod]
[ScriptMethod(UseHttpGet=true,ResponseFormat=ResponseFormat.Json)]
公共列表GetTags()
{
List TagList=新列表();
DataTable dt=Helpers.Tags.GetTags();
foreach(数据行dr在dt.行中)
{
标签t=新标签();
t、 标记名=dr[“Tag”].ToString();
t、 TagDescription=dr[“Description”].ToString();
标记列表。添加(t);
}
返回标记列表;
}
第三组
内容类型:请求中的application/json

本文也可能会有所帮助


首先,您需要在服务类级别设置
[System.Web.Script.Services.ScriptService]
属性,以便能够获得
Json
结果

其次,您需要在方法上应用
[ScriptMethod(UseHttpGet=true,ResponseFormat=ResponseFormat.Json)]

[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public List<Tag> GetTags()
{
    List<Tag> TagList = new List<Tag>();

    DataTable dt = Helpers.Tags.GetTags();

    foreach (DataRow dr in dt.Rows)
    {
        Tag t = new Tag();
        t.TagName = dr["Tag"].ToString();
        t.TagDescription = dr["Description"].ToString();
        TagList.Add(t);
    }

    return TagList;
}
[WebMethod]
[ScriptMethod(UseHttpGet=true,ResponseFormat=ResponseFormat.Json)]
公共列表GetTags()
{
List TagList=新列表();
DataTable dt=Helpers.Tags.GetTags();
foreach(数据行dr在dt.行中)
{
标签t=新标签();
t、 标记名=dr[“Tag”].ToString();
t、 TagDescription=dr[“Description”].ToString();
标记列表。添加(t);
}
返回标记列表;
}
第三组
内容类型:请求中的application/json

本文也可能会有所帮助


阅读关于和内置的and可以是@L.B的良好起点+1。您应该在这里使用JSON.net,然后您可以将任何数组或对象转换为JSON,以传递给客户端进行解析。阅读关于和内置的and可以是@L.B的良好起点+1。您应该在这里使用JSON.net,然后您可以将任何数组或对象转换为JSON,以传递给客户端进行解析。根据firebug执行建议后,如果我得到数组.d,我会得到以下内容:[Object{{uuuu type=“iConnect.UI.Webservices.Tag”,TagName=“Poll”,TagDescription=“Poll Tag”}]这和我想要的输出不一样,我还不知道如何使用它,我在互联网上研究了很多文章,但仍然找不到如何做。根据firebug的建议,如果我得到数组,我会得到以下结果:[Object{uuuu type=“iConnect.UI.Webservices.Tag”,TagName=“Poll”,TagDescription=“Poll Tag”}]与我想要的输出不相似,我还不确定如何使用它,我在互联网上研究了很多文章,但仍然找不到如何使用它。