2010-09-02 3 views

ответ

3

Нет автоматического способа, поскольку объект JSON содержит только данные, тогда как в HTML есть семантика разметки (нет сопоставления 1: 1 между JSON и HTML).

0

При попытке найти ответ на свой вопрос, для себя я натолкнулся на это: Jemplate Не уверен, что это вам поможет. Это помогло мне.

0

Этот код отображает какой-либо объект JSON в HTML (используя org.json ОМТ):

/** 
* 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; } 
Смежные вопросы