java格式化控制台输出_在JAVA中把JSON数据格式化输出到控制台

package com.test.jsonUtility;

/** * @author

* @date 创建时间:2017年10月17日 上午11:11:42

* @version 1.0

* @parameter

* @since

* @return

* @throws */

public class Json {

private static String getLevelStr(int level) {

StringBuffer levelStr = new StringBuffer();

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

levelStr.append("\t");

}

return levelStr.toString();

}

public static void main(String[] args) {

//json 字符串

String s = "{\"code\":10000,\"msg\":null,\"data\":{\"id\":\"7aa0eb56-1026-4497-a42e-4c39f5e3dcf1\",\"topicId\":\"0876ab84-a478-417b-91bc-849843c191a5\",\"title\":null,\"commentId\":null,\"content\":\"" +

"开发者平台自动化测试:针对帖子发表评论" +

"\",\"images\":\"\",\"time\":\"2017-10-15 18:09:56\",\"userId\":\"61028f94-de92-4c65-aad3-2fc8614e1d34\",\"userName\":\"devautotest\",\"commentNum\":0,\"status\":0}}";

int level = 0;

//存放格式化的json字符串

StringBuffer jsonForMatStr = new StringBuffer();

for(int index=0;index

{

//获取s中的每个字符

char c = s.charAt(index);

// System.out.println(s.charAt(index));

//level大于0并且jsonForMatStr中的最后一个字符为\n,jsonForMatStr加入\t

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

jsonForMatStr.append(getLevelStr(level));

// System.out.println("123"+jsonForMatStr);

}

//遇到"{"和"["要增加空格和换行,遇到"}"和"]"要减少空格,以对应,遇到","要换行

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;

}

}

System.out.println(jsonForMatStr);

}

}

以上代码执行结果如下图显示

cbddd9b0349802edf3525491d7c70e40.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值