java - Mustache.java 传递 json 字符串

标签 java json mustache mustache.php

我正在使用 Mustache.java 并希望插入 json 字符串而不是对象。我不确定为什么以前没有人遇到过这个问题。

// works since an 'Example' object is passed in
mustache.execute(new BufferedWriter(new FileWriter(objFile)), new Example()).flush();

// does not work since a json object is passed in directly
 JSONObject jsonObject = new JSONObject("{\n" +
            "  \"header\": \"Colors\",\n" +
            "  \"items\": [\n" +
            "      {\"name\": \"red\", \"first\": true, \"url\": \"#Red\"},\n" +
            "      {\"name\": \"green\", \"link\": true, \"url\": \"#Green\"},\n" +
            "      {\"name\": \"blue\", \"link\": true, \"url\": \"#Blue\"}\n" +
            "  ],\n" +
            "  \"empty\": false\n" +
            "}");
mustache.execute(new BufferedWriter(new FileWriter(objFile)), jsonObject).flush();

此处代码:https://github.com/spullara/mustache.java/blob/master/example/src/main/java/mustachejava/Example.java

最佳答案

我找到了解决这个问题的方法!

可以从 json 字符串创建一个 HashMap 并将其传递给 Mustache.execute 方法。

//create map using gson    
Map<String,Object> gsonMap = new HashMap<String,Object>();
gsonMap = (Map<String,Object>) gson.fromJson(myJsonString, gsonMap.getClass());

//pass the hashmap instead of a class object
mustache.execute(new BufferedWriter(new FileWriter(objFile)), gsonMap).flush();

关于java - Mustache.java 传递 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40136832/

相关文章:

php - 我动态地在多列中拆分单日的 Fullcalendar View

jQuery Cycle2 幻灯片缩略图创建

java - 从 JSP 页面中删除 Java 代码

java - java中包含操作系统级命令的包有哪些?

java - 使用套接字在 Java 中的客户端服务器应用程序上进行 xml 处理

java - Neo4j - Spring 从标签获取字符串列表

javascript - flask +d3.js : Passing multiple datasets to html

json - 根据参数值在 Golang 中解码传入的 JSON

javascript - 向 mustache/php 添加条件

java - 如何防止在模板中使用环境变量?