【问题标题】:Returning MULTIPLE Lists using JSON and Serializer使用 JSON 和序列化器返回多个列表
【发布时间】:2015-09-14 20:54:25
【问题描述】:

我正在使用这个从我的 ASP.NET WebMethod 向我的 Javascript 发送一个列表:

List<Person> plist = new List<Person>();

string json = "";
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
json = oSerializer.Serialize(plist );

return json;

我正在使用它从我的 JS 中检索这些值:

function onSuccess(val) {
        var obj = JSON.parse(val)
        obj.forEach(function (entry) {
               console.log(entry);
       });
}

一切正常。但是现在我想返回多个列表,例如:

List<Person> plist = new List<Person>();
List<Car> carlist = new List<Car>();
List<Car> jeeplist = new List<Car>();

使用我之前使用的相同机制。如何将两个列表插入序列化程序并从我的 JS 中打印出来?

编辑

如何从 JS 中获取值?是这样吗?

obj.forEach(function (entry) {
         entry.forEach(function (act)
         {
               console.log(act);
         })
});

【问题讨论】:

    标签: javascript c# asp.net json webmethod


    【解决方案1】:
    struct TwoLists
    {
        public List<Person> plist;
        public List<Car> carlist;
    }
    

    ...

    TwoLists lists;
    lists.plist = new List<Person>();
    lists.carlist = new List<Car>();
    ...
    string json = "";
    System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    json = oSerializer.Serialize(lists);
    
    return json;
    

    ...

    function onSuccess(val) {
        var obj = JSON.parse(val);
        obj.plist.forEach(function (entry) {
            console.log(entry);
        });
        obj.carlist.forEach(function (entry) {
            console.log(entry);
        });
    }
    

    【讨论】:

    • 我需要传递两个以上的列表,可以吗?
    • 您可以传递任意数量的列表或其他数据结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2015-10-08
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多