我正在使用 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();
关于java - Mustache.java 传递 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40136832/