如何从ajax调用返回多个对象(grails)

时间:2011-05-13 05:31:49

标签: ajax grails

我有一个ajax函数,它应该返回一个对象列表。我很遗憾地问我这是grails和网络编程的初学者

例如我的ajax函数应返回此

的组合
def ajaxFunction= {
    //it should return all the following object
    List<String> stringList = ......
    List<ClassA> classAList = .....
    ClassB objectOfB = ....
    int count = ...
    .
    .
    .
    //I don't know who to return this all... (stringList , classAList , objectOfB ,count)

}

3 个答案:

答案 0 :(得分:1)

或者你可以这样做:

def ajaxFunction= {
    //it should return all the following object
    List<String> stringList = ......
    List<ClassA> classAList = .....
    ClassB objectOfB = ....
    int count = ...
    return [stringList:stringList,classAList:classAList,objectOfB:objectOfB,count:count] as JSON

}

请记住导入grails转换器JSON

答案 1 :(得分:0)

我认为最好创建一个bean类。像这样

class YourBeanClass {
    List<String> stringList;
    List<ClassA> classAList;
    ClassB objectOfB;
    int count;
    .
    .
    .
}

所以你可以使用这个bean类并返回这个bean类

def ajaxFunction= {
    YourBeanClass yourBeanClass = new YourBeanClass();
    yourBeanClass.stringList = ......
    yourBeanClass.classAList = .....
    yourBeanClass.objectOfB = ....
    yourBeanClass.count = ...
    yourBeanClass..
    .
    .

    //you can return/render this yourBeanClass
    return yourBeanClass

}

答案 2 :(得分:0)

您可以返回多个json对象并在客户端解析它:

List<String> stringList1 =  new ArrayList<String>();
List<String> stringList2 =  new ArrayList<String>();

String json1 = new Gson().toJson(stringList1); 
String json2 = new Gson().toJson(stringList2); 
String bothJson = "["+json1+","+json2+"]"; //Put both objects in an array of 2 elements

return bothJson as JSON

虽未经过测试。