如何将json对象转换为java中的HTML格式?
答
没有自动的方式,因为JSON对象只包含数据,而在HTML中有标记语义(JSON和HTML之间没有1:1映射)。
答
这个代码显示任何JSON对象到HTML(使用org.json LIB):
/**
* Get the JSON data formated in HTML
*/
public String getHtmlData(String strJsonData) {
return jsonToHtml(new JSONObject(strJsonData));
}
/**
* convert json Data to structured Html text
*
* @param json
* @return string
*/
private String jsonToHtml(Object obj) {
StringBuilder html = new StringBuilder();
try {
if (obj instanceof JSONObject) {
JSONObject jsonObject = (JSONObject)obj;
String[] keys = JSONObject.getNames(jsonObject);
html.append("<div class=\"json_object\">");
if (keys.length > 0) {
for (String key : keys) {
// print the key and open a DIV
html.append("<div><span class=\"json_key\">")
.append(key).append("</span> : ");
Object val = jsonObject.get(key);
// recursive call
html.append(jsonToHtml(val));
// close the div
html.append("</div>");
}
}
html.append("</div>");
} else if (obj instanceof JSONArray) {
JSONArray array = (JSONArray)obj;
for (int i=0; i < array.length(); i++) {
// recursive call
html.append(jsonToHtml(array.get(i)));
}
} else {
// print the value
html.append(obj);
}
} catch (JSONException e) { return e.getLocalizedMessage() ; }
return html.toString();
}
,那么你只需要添加特定的CSS,如:
.json_object { margin:10px; padding-left:10px; border-left:1px solid #ccc}
.json_key { font-weight: bold; }