我有以下代码:
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并返回它。你能告诉我任何代码样本吗?
由于
答案 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对象。这两种方法都有效,但詹姆斯的回答是优化的方法。