Groovy / Grails - 在JSON中渲染缓存的JSON

时间:2015-11-06 05:09:57

标签: json grails

我想渲染包含已缓存JSON的字段的JSON。我怎么能这样做?

示例:

def cachedJSON = [cachedPropertyOne:'a', cachedPropertyTwo:'b'] as JSON
render([listEntryOne:'c', listEntryTwo:'d', cachedProperties: cachedJSON] as JSON)

上述代码的问题是cachedProperties被转义。例如,"变为\"

2 个答案:

答案 0 :(得分:0)

根据我的经验,渲染为JSON不喜欢内联映射,所以我总是声明一个变量并且像这样:

def result = [:]
// assign values to result
render result as JSON

它按预期的方式工作。

答案 1 :(得分:0)

在您提供的代码中,cachedJSON只是一个地图,因此我假设它是json语法中字符串的代表。

例如,如果cachedJSON实际上是:

def cachedJSON = '{"cachedPropertyOne":"a","cachedPropertyTwo":"b"}'

然后,您可以使用JSON类的parse方法将其转换为JSONObject,然后可以将其放回渲染的地图中。

def cachedJSON = '{"cachedPropertyOne":"a","cachedPropertyTwo":"b"}'

render([
  listEntryOne:'c', 
  listEntryTwo:'d', 
  cachedProperties: JSON.parse(cachedJSON)
] as JSON)