簡體   English   中英

使用列表的Grails JSON

[英]Grails json using list

使用Grails 1.3.7將我的域類聲明為I m

StudentReport{
  String username
  String studentName
}

 def sp = StudentReport.createCriteria()



def studentReportList = sp.list {

            projections {
               property 'username'
                property 'studentName'
            }
            firstResult 0
            maxResults 20
            order("id", "asc")
        } 
render studentReportList as JSON

My expected result is

[
{"username":"13B06","student_name":"JOHN SAMUEL"},
{"username":"13B07","student_name":"KATHIRESAN.K"},
{"username":"13B08","student_name":"KATHIRESAN.K"},
{"username":"13B11","student_name":"MALINI.S"}
]

But what i get is

[
   ["13B06","JOHN SAMUEL"],
   ["13B07","KATHIRESAN.K"],
   ["13B08","KATHIRESAN.K"],
   ["13B11","MALINI.S"]
]

我需要帶有花括號的屬性名稱。 誰能幫助我。 我試過在控制器中不使用投影,但是我得到的是准確的結果,但是如果嘗試使用投影,那么我會保持相同的結果。

[ {"13B06","JOHN SAMUEL"},{"13B07","KATHIRESAN.K"},{"13B08","KATHIRESAN.K"},{"13B11","MALINI.S"} ]

是無效的JSON。 您當前獲取的輸出是正確的,因為studentReportList是列表列表,所以JSON必須是數組數組。 如果要使用括號,則內部元素將需要是JSON 對象而不是數組。 產生

[
  {"username":"13B06","student_name":"JOHN SAMUEL"},
  ...
]

您可以在條件中添加合適的結果轉換器,並使用property投影方法的二元形式來分配正確的別名:

def studentReportList = sp.list{
        projections {
           property 'username', 'username'
            property 'studentName', 'student_name'
        }
        firstResult 0
        maxResults 20
        order("id", "asc")
        resultTransformer AliasToEntityMapResultTransformer.INSTANCE
    }

(以及相應的import ),以使條件返回地圖列表而不是列表列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM