Grails JSON转换器

时间:2014-02-13 15:38:13

标签: json grails groovy

我的主控制器中有一个方法,它返回一个我想呈现为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了?

1 个答案:

答案 0 :(得分:2)

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