построить JSON из списка объектов в Groovy - PullRequest
0 голосов
/ 20 января 2012

Я хочу построить JSON из списка объектов.Пока что я могу создать только 1 объект в JSON.Что мне не хватает?Есть ли лучший способ преобразовать список объектов в 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()
}

Мой вывод

{
    "response": {
        "product_alerts": {
            "id": "6",
            "name": "ABC1",
            "description": "Test2",
            "active": "A"
        }
    }
}

1 Ответ

5 голосов
/ 20 января 2012

Использование def builder = new groovy.json.JsonBuilder(result)

Обновление

Попробуйте это

def json = new groovy.json.JsonBuilder()
def result1 = json {
     response result
}
println json.toPrettyString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...