convert JSON To Printable HTML - Java JSON

Java examples for JSON:JSON String

Description

convert JSON To Printable HTML

Demo Code

/*//  w w  w.  j a v a 2s .c o m
 * Copyright (c) 2008, ClearForest Ltd.
 * 
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions 
 * are met:
 * 
 *       -    Redistributions of source code must retain the above 
 *          copyright notice, this list of conditions and the 
 *          following disclaimer.
 * 
 *       -    Redistributions in binary form must reproduce the above 
 *          copyright notice, this list of conditions and the 
 *          following disclaimer in the documentation and/or other 
 *          materials provided with the distribution. 
 * 
 *       -    Neither the name of ClearForest Ltd. nor the names of 
 *          its contributors may be used to endorse or promote 
 *          products derived from this software without specific prior 
 *          written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

public class Main{
    public static String convertJSONToPrintableHTML(String json) {
        String tab = "    ";
        StringBuilder new_json = new StringBuilder();
        String retStr = null;
        int indent_level = 0;
        boolean in_string = false;
        int i;
        char c;

        json = StringUtils.escapeHTML(json);

        for (i = 0; i < json.length(); i++) {
            c = json.charAt(i);

            switch (c) {
            case '{':
            case '[':
                if (!in_string) {
                    new_json.append("" + c + "<br>\n"
                            + StringUtils.strRepeat(tab, indent_level + 1));
                    indent_level++;
                } else {
                    new_json.append(c);
                }
                break;
            case '}':
            case ']':
                if (!in_string) {
                    indent_level--;
                    new_json.append("<br>\n"
                            + StringUtils.strRepeat(tab, indent_level) + c);
                } else {
                    new_json.append(c);
                }
                break;
            case ',':
                if (!in_string) {
                    new_json.append(",<br>\n"
                            + StringUtils.strRepeat(tab, indent_level));
                } else {
                    new_json.append(c);
                }
                break;
            case ':':
                if (!in_string) {
                    new_json.append(": ");
                } else {
                    new_json.append(c);
                }
                break;
            case '&': // deal with &quot;
                if (json.substring(i).startsWith("&quot;")) {
                    if (i == 0 || (json.charAt(i - 1) != '\\')) {
                        in_string = !in_string;
                    }
                }
                /*
                 * Fall through to append the '"'
                 */
            default:
                new_json.append(c);
                break;
            }
        }

        retStr = new_json.toString();
        retStr = retStr.replace("\\/", "/");
        retStr = retStr.replace("http: //", "http://");
        return retStr;
    }
}

Related Tutorials