json - Grails JSON转换器

标签 json grails groovy

我的主 Controller 中有一个方法,该方法返回要渲染为JSON的字符串。
所以我要导入“import grails.converters.JSON”并调用

myMethod() as JSON

,并且效果很好。但是当我需要在集成测试中获取json响应的一些详细信息时。

因此,在我的集成测试中,我有:
void testfoo() {
    def bar = controller.myMethod();
    def bar.name; //fails
    JSON.parse(bar.toString()).name; // doesn't fail
    ....
    ..
}

知道为什么我需要将其转换为字符串,然后再次转换为JSON,因为它已经是JSON吗?

最佳答案

从方法中获得的值是grails.converters.JSON,它本身不是可直接访问的JSON树,而只是一个对象,该对象知道如何在需要时将自身序列化为JSON。如果要直接访问JSON树结构,则需要告诉grails.converters.JSON对象进行序列化,然后将该JSON传递给JSON.parse以将其转换为JSONElement(或其子类之一,在这种情况下可能是JSONObject)。

关于json - Grails JSON转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21758700/

相关文章:

Grails: getClass().getResource ("whatever") 不起作用

grails - Grails GORM搜索与另一个列表匹配的列表项

ios - 从 NSURL 转换时 NSString 为空

ios - 如何将 NSData 更改为 NSDictionary 或 JSON

grails - Groovy 和 final 属性如何用 Map 设置?

jenkins - 如何在 jenkinsfile 内使用凭证类型 "SSH Username with private key"进行管道作业

rest - Groovy Rest Api

groovy - 如何从 CliBuilder 获取非选项参数?

json - 通过消除空格来压缩 JSON 文件

json - 将 json 解析为 swift 常量