【问题标题】:How to render a nested map as JSON from the Controller如何从控制器将嵌套地图呈现为 JSON
【发布时间】:2021-01-02 14:58:37
【问题描述】:

This solution 不适用于嵌套地图。我正在尝试转换为 JSON。我需要发送这个嵌套地图,因为它包含很多我需要在前端绘制的图表。

这是nestedMap在后端的样子:

Map<String, Map<String, Object>> nestedMap

虽然在我将它传递给控制器​​之后,我在尝试渲染它之前将它声明为def nestedMap。在控制器结束时,我尝试将 render nestedMap 作为 JSON。

我在 AJAX 调用后收到的信息:

{"FirstSample":
{"S1":
{"avg":2.367333,"computation":-7.314434,"computedAvg":9.26567,"this$0":
{"transactionManager: 
{"class":"org.codehaus.groovy.grails.transaction.ChainedTransactionManager",
"transactionManagers":[
{"dataSource":
{"class":"org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy",
"connection": 
{"autoCommit":true,"catalog":null,"class":"...

【问题讨论】:

  • 预期渲染作品。您的 backend map 包含一些技术密钥,例如 "this$0" - 只需从地图中删除它们
  • 嗯,它一个字符串到映射的映射。我会宣布垃圾进垃圾出。请提供构建地图的代码,然后向我们展示,结果与您输入的不同。

标签: json grails groovy nested-map


【解决方案1】:

出现此问题是因为使用 JSON 呈现的 Map 包含一个对象。我将尝试转换为 JSON 的地图更改为 MultiMap&lt;String, List&lt;String&gt;&gt; nestedMap,以考虑前端需要的多个值。发生这种情况后,render nestedMap as JSON 能够工作。因此,如果声明为def,则 Map 中没有对象。

def nestedMap = [:]
render nestedMap as JSON

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多