2013-05-31 57 views
0

我有下面的代碼:如何從JSONs的列表JSON Grails中

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並返回。你能告訴我任何代碼示例嗎?

感謝

回答

1

可以做到這一條線:

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

但我想創建一個JSON來自JSONS列表 – ruhungry

+1

@Alex它確實如此。什麼是'機器'? – dmahapatro

0

@詹姆斯Kleeh的答案返回一個JSON數組這是一個有效的JSON和應該足夠你的目的。如果你需要一個JSONObject(命名的數組),那麼你可以通過使用等來增強詹姆斯回答:

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

我想,當你的意思是一個JSON與JSONs的名單不過是一個JSON數組或JSON對象與一個JSON數組。這兩種方法都有效,但詹姆斯的回答是優化方法。