Tôi đang sử dụng mã này dưới đây để nhập dữ liệu JSON vào một khuôn mẫu, để có được HTML:Hãy Moustache Template, vượt qua JSON và Chuyển đổi sang HTML
mẫu:
String schema = "<h1>{{header}}</h1>"
+ "{{#bug}}{{/bug}}"
+ "{{#items}}"
+ "{{#first}}"
+ "<li><strong>{{title}}</strong>
+ </li>"
+ "{{/first}}"
+ "{{#link}}"
+ "<li><a href=\"{{url}}\">{{name}}
+ </a></li>"
+ "{{/link}}"
+ "{{/items}}"
+ "{{#empty}}"
+ "<p>The list is empty.</p>"
+ "{{/empty}}";
JSON đối tượng:
try {
String template = "{\"header\": \"Colors\", "
+ "\"items\": [ "
+ "{\"name\": \"red\", \"first\": true, \"url\": \"#Red\"}, "
+ "{\"name\": \"green\", \"link\": true, \"url\": \"#Green\"}, "
+ "{\"name\": \"blue\", \"link\": true, \"url\": \"#Blue\"}"
+ " ], \"empty\": false }";
JSONObject jsonWithArrayInIt = new JSONObject(template);
JSONArray items = jsonWithArrayInIt.getJSONArray("items");
Map<String,String> ctx = new HashMap<String,String>();
ctx.put("foo.bar", "baz");
Mustache.compiler().standardsMode(true).compile("{{foo.bar}}").execute(ctx);
System.out.println("itemised: " + items.toString());
} catch(JSONException je) {
//Error while creating JSON.
}
Tôi chuyển bản đồ dữ liệu để Mustache hoạt động. Phương pháp này trông giống như sau:
public static Map<String, Object> toMap(JSONObject object)
throws JSONException {
Map<String, Object> map = new HashMap();
Iterator keys = object.keys();
while (keys.hasNext()) {
String key = (String) keys.next();
map.put(key, fromJson(object.get(key)));
}
return map;
}
Tôi đang theo dõi Mustache Guide để có được tính năng tự động sửa Mustache. Nhưng tôi không biết làm thế nào để có được kết quả mà tôi mong đợi. Đầu ra phải được như sau:
<h1>Colors</h1>
<li><strong></strong></li>
<li><a href="#Green">green</a></li>
<li><a href="#Blue">blue</a></li>
cảm ơn bạn :) nhưng bây giờ làm thế nào để chuyển đổi này vào định dạng html mẫu? – yakusha
Mặc dù mã được đánh giá cao, nó luôn luôn nên có một lời giải thích kèm theo. Điều này không phải là dài nhưng nó được mong đợi. – peterh