如何使用 Mustache 在服务器端的 json 数组中显示嵌套的 json 对象

Posted

技术标签:

【中文标题】如何使用 Mustache 在服务器端的 json 数组中显示嵌套的 json 对象【英文标题】:How to display nested json object in json array on Server side using Mustache 【发布时间】:2018-04-25 14:28:19 【问题描述】:

我正在使用 mustache 创建模板,使用服务器端的 Spring-boot-starter-mustache 创建模板。

我推荐了:https://www.mkyong.com/spring-boot/spring-boot-hello-world-example-mustache/

pom.xml:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mustache</artifactId>
        <version>1.5.8.RELEASE</version>
</dependency>

我在控制器中创建了一个 Java JSON 对象:

model.put("schoolJson", schoolJson);
return "viewJson";

JSON 结构:


"school": "abc",
"loc":  "def",
"type": [
            
            "section": "sec1",
            "test": 
                    "grade": "gradea"
                    
            ,
            "section": "sec2",
            "test": 
                    "grade": "gradeb"
                    
            
        ]

在我看来,我想在“类型”中显示每个“测试”的“等级”。但它不会显示。有人可以在这里帮忙吗?

<div>
 <p>schoolJson.school</p>

  #schoolJson.type
   <ul>
    <li>schoolJson.type.grade</li>
   </ul>
  /schoolJson.type
</div>  

【问题讨论】:

【参考方案1】:

您的li 应该这样做:

<li>
    #test
        grade
    /test
</li>

这是因为您必须进入嵌套的test 对象的上下文才能获得grade

【讨论】:

还是不行。当我使用 mustache 进行客户端脚本编写时,它可以工作。但这不适用于服务器端 html 页面。【参考方案2】:

如果“测试”键始终存在,您只需编写:

<li>test.grade</li>

我刚刚检查过,这按预期工作。如果它在您的代码中不能在服务器端工作,那么问题是:您如何解析 JSON 字符串? JMustache 本身不支持 JSON,您必须将其解析为 jmustache 可以理解的数据结构。一起使用 noggit 和 JMustache 请参阅此示例:https://***.com/a/47485363/868941

【讨论】:

以上是关于如何使用 Mustache 在服务器端的 json 数组中显示嵌套的 json 对象的主要内容,如果未能解决你的问题,请参考以下文章

JSON 对象到 Mustache.js 表中

如何使用客户端的时区将 asp.net 日期时间反序列化为 JSON 日期时间

.net mvc服务端怎么接收客户端的发送的json数据?

json web based token在服务器端的验证流程

mustache.js 与 jquery-tmpl

使用 node.js 的服务器端 mustache.js 示例