gpt4 book ai didi

json - Grails从域列表呈现JSON的奇怪行为

转载 作者:行者123 更新时间:2023-12-02 15:33:56 24 4
gpt4 key购买 nike

我正在尝试从 Controller 操作返回JSON。这是我的行动方法

import grails.converters.JSON
....
def getDoctorList(id){

def serviceNo = id ?: "1"


def service = ServicePoint.findByNumber(serviceNo)

def jsonMap=service?.staff.collect{
[id: it.id , name: it.firstName +" "+ it.lastName]
}

render jsonMap as JSON

}

如果我在最后一行将jsonMap转换为JSON,则不会渲染我的页面;如果将其删除为JSON页面,则一切正常。此代码有什么问题?

================================================== ===============================

我不需要渲染gsp页面,我需要将 map 渲染为json,以便将其用于填充gsp页面中的放置框。现在,当我在代码中使用(作为JSON)时,不显示由ajax呈现的页面。如果我删除它,一切正常。

最佳答案

通过呈现JSON,您不会呈现与操作关联的模板。如果我采用惯例,并且您有一个getDoctorList.gsp,则可以使用以下方法:

def getDoctorList(id){
//.. logic here
// leaving no render method will default to convention
// rendering getDoctorList.gsp
}

def getDoctorList(id){
//.. logic here
// supplying a render with a view will render that view
render view: 'doctor_list' // assumes doctor_list.gsp
}

def getDoctorList(id){
//.. logic here
// Rendering JSON will not use a template at all
render jsonMap as JSON
}

这会起作用,但我怀疑这是您想要的:
def getDoctorList(id){
//.. logic here
[jsonMap: jsonMap as JSON]
}

这会将jsonMap作为请求参数推送到getDoctorList.gsp。一般来说,呈现JSON数据通常是为了响应ajax请求。

关于json - Grails从域列表呈现JSON的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14863482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com