Json格式化输出

来源:互联网 发布:vb api浏览器 user32 编辑:程序博客网 时间:2024/06/05 14:21

/**

* 输入json数据

* 得到格式化json数据  退格用\t 换行用\r

*/

public static String format(StringjsonStr) {

    int level = 0;

    StringBuffer jsonForMatStr =new StringBuffer();

    for(inti=0;i<jsonStr.length();i++){

        char c = jsonStr.charAt(i);

        if(level>0&&'\n'==jsonForMatStr.charAt(jsonForMatStr.length()-1)){

            jsonForMatStr.append(getLevelStr(level));

        }

        switch (c) {

        case '{':

        case '[':

            jsonForMatStr.append(c+"\n");

            level++;

            break;

        case ',':

            jsonForMatStr.append(c+"\n");

            break;

        case '}':

        case ']':

            jsonForMatStr.append("\n");

            level--;

            jsonForMatStr.append(getLevelStr(level));

            jsonForMatStr.append(c);

            break;

        default:

            jsonForMatStr.append(c);

            break;

        }

    }

    return jsonForMatStr.toString();

}


private static String getLevelStr(intlevel){

        StringBuffer levelStr =new StringBuffer();

        for(intlevelI = 0;levelI<level ;levelI++){

            levelStr.append("\t");

        }

        return levelStr.toString();

    }

原创粉丝点击