如何从Grails中的JSON列表生成JSON

时间:2013-05-31 14:30:26

标签: json list grails join

我有以下代码:

package xxx

import javax.ws.rs.Path
import javax.ws.rs.GET
import javax.ws.rs.Produces
import grails.converters.JSON
import org.json.simple.JSONObject


@Path('/api/machine')
class MachineService {

    @GET
    @Produces(['application/json'])
    def String readAll() {
        def List<Machine> z = new ArrayList<Machine>(Machine.findAll())
        def List<String> list = new ArrayList<String>()

        for (i in z) {
            list.add([id: i.getId(), name: i.getName()] as JSON).toString()
        }


    }
}

我想将列表加入一个JSON并返回它。你能告诉我任何代码样本吗?

由于

2 个答案:

答案 0 :(得分:1)

可以在一行中完成:

Machine.all.collect{ [id: it.id, name: it.name] } as JSON

答案 1 :(得分:0)

@James Kleeh的回答返回一个JSON数组,它是一个有效的JSON,应该满足你的目的。如果你需要一个JSONObject(名为Array),那么你可以使用like:

来增强James的答案

[machineList: Machine.all.collect{ [id: it.id, name: it.name] }] as JSON

我想当你的意思是带有JSON列表的JSON只是一个JSON数组或带有JSON数组的JSON对象。这两种方法都有效,但詹姆斯的回答是优化的方法。