Как преобразовать объект json в формат HTML в Java? - PullRequest
3 голосов
/ 02 сентября 2010

Как преобразовать объект json в HTML в Java?

Ответы [ 3 ]

3 голосов
/ 04 сентября 2010

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

0 голосов
/ 27 октября 2017

Этот код отображает любой объект 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; }
0 голосов
/ 19 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...