construire un json à partir de la liste des objets en groovy

Je veux construire un json à partir d'une liste d'objets. Jusqu'à présent, je suis en mesure de produire seulement 1 objet en json. Ce qui me manque? Est-il une meilleure manière de transformer la liste des objets en json?

private static List<ProductAlertsResponse> executeSelection(String query)
{
    List<ProductAlertsResponse> prodAlerts=new ArrayList<ProductAlertsResponse>()
    sql.eachRow(query)
    {
        ProductAlertsResponse prodAlert=new ProductAlertsResponse((String)it.id,(String)it.name,(String)it.description,(String)it.active,(String)it.release_date)

        //I was converting it into a List before, but then I thought it would be better to do with list of classes
        /*String[] rows=new String[5]
        rows[0]=(String)it.id
        rows[1]=(String)it.name
        rows[2]=(String)it.description
        rows[3]=(String)it.active
        rows[4]=(String)it.release_date

        result.add(rows)*/

/*Also feel free to comment is this right way to put in list (above commented code)*/

        prodAlerts.add(prodAlert)
    }
    return prodAlerts
}

static main(args) {
    AppProperties.load()
    sql= Sql.newInstance("jdbc:oracle:thin:@"+AppProperties.get("hostname")+":"+AppProperties.get("port")+":"+AppProperties.get("service"), AppProperties.get("username"), AppProperties.get("password"),"oracle.jdbc.OracleDriver")

    List result=executeSelection("select ID,NAME,DESCRIPTION,ACTIVE,RELEASE_DATE from productinfo where ACTIVE='A'")

    def builder = new groovy.json.JsonBuilder()

    def root=builder.response{

        product_alerts{
            result.each{
                //JsonOutput.toJson(it)
                id  it.getId()
                name it.getName()
                description it.getDescription()
                active it.getActive()
            }

        }

    }
    println builder.toPrettyString()
}

Ma sortie

{
    "response": {
        "product_alerts": {
            "id": "6",
            "name": "ABC1",
            "description": "Test2",
            "active": "A"
        }
    }
}
InformationsquelleAutor abi1964 | 2012-01-20