java传递json字符串

java传递json字符串,java,json,mustache,mustache.php,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

我正在使用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();

这里的代码:

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

可以使用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();
//使用gson创建地图
Map gsonMap=newhashmap();
gsonMap=(Map)gson.fromJson(myJsonString,gsonMap.getClass());
//传递hashmap而不是类对象
execute(new BufferedWriter(new FileWriter(objFile)),gsonMap.flush();