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.length();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);

    }

    

}

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

在JAVA中把JSON数据格式化输出到控制台相关推荐

  1. ajax写入json数据格式化,java ajax解析json数据格式化

    java ajax解析json数据格式化 [2021-02-01 23:35:58]  简介: 服务器 hadoop格式化HDFS出现错误解决办法 报错信息: host:java.net.Unknow ...

  2. python之json数据格式化输出方法

    问题:json格式数据直接print打印无格式,在数据量较多时,不便于人眼高效找到数据 预期:json数据格式化输出,一行一个key.value 解决:使用json模块dumps函数的参数indent ...

  3. Java中使用JSON数据传递

    一.Java中使用JSON数据传递 pom依赖引入 <dependency><groupId>com.alibaba</groupId><artifactId ...

  4. php JSON数据格式化输出方法

    php 的json_encode能把数组转换为json格式的字符串.字符串没有缩进,中文会转为unicode编码,例如\u975a\u4ed4.人阅读比较困难.现在这个方法在json_encode的基 ...

  5. python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出

    最近使用json.dumps()来输出json数据,发现输出的数据是一行,看着太别扭了,不美观.发现可以使用indent参数来控制 import jsondicts={"name" ...

  6. java中map转为json数据_Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回...

    Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回html 1.自定义工具类(简单易用)-下面是我写的一个简单的工具类前端 package com.test.util; i ...

  7. Java如何获取JSON数据中的值 备忘

    Java如何获取JSON数据中的值 取出JsonArray中的object(orderNo) 嵌套 JsonObeject {    JsonObeject {       JsonArray [Ob ...

  8. Java 中的面向数据编程

    近年来, Amber项目为 Java 带来了许多新特性-- 局部变量类型推断. 文本块. 记录类. 封印类. 模式匹配 等等.虽然这些特性都是独立的,但也可以组合在一起使用.具体地说,记录类.封印类和 ...

  9. 【Groovy】json 序列化 ( 类对象转为 json 字符串 | 使用 JsonBuilder 进行转换 | 使用 JsonOutput 进行转换 | 将 json 字符串格式化输出 )

    文章目录 一.Groovy 对象转为 json 字符串 ( 使用 JsonBuilder 进行转换 ) 二.使用 JsonOutput 将指定类型对象转为 json 字符串 三.将 json 字符串格 ...

最新文章

  1. crontab详解-如何让脚本自动定时运行,设置、启动 linux定时器
  2. html手机pc不同页面,PC端和手机端如何同时生成静态页
  3. Eclipse 设置自动导包
  4. common lisp 学习第二天 简单数据库操作
  5. php 文件保存函数,php 写入和读取文件函数
  6. php预处理获取改变行数,php – 使用MySQLi预处理语句时无法获取行数...
  7. 将x86平台的Linux控制台重定向到串口
  8. linux一款不错的linux系统清理工具
  9. 入门学Qt_软件Demo界面GUI设计流程综述
  10. 清除壁垒 大数据推动城市规划质突破
  11. UDP进程terminated
  12. 博通linux网卡驱动,在64位CentOS 6 系统上安装Broadcom网卡驱动
  13. 查看支付宝所有交易记录方法
  14. 根据身份证号回填信息
  15. JAVA获取上一年的日期_java获取日期,前一年,前一月,前一周
  16. 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)
  17. 使用C#.NET WebBrowser控件导航到不同的网站出现 所请求的资源正在使用中。 (从HRESULT异常:0x800700AA)
  18. 基于 Electron 实现 uTools 的超级面板
  19. 网页 从其他服务器 加载图片,实现网页图片的异步加载
  20. laradock build elasticsearch 报错 unknown setting [cluster.initial_master_nodes] 的解决办法

热门文章

  1. Leetcde每日一题:160.intersection-of-two-linked-lists(相交链表)
  2. PBRNet:Progressive Boundary Refinement Network for Temporal Action Detection (AAAI 2020)
  3. 时序动作定位:Rethinking the Faster R-CNN Architecture for Temporal Action Localization(TAL-Net)
  4. php原生数据库分页
  5. 「小程序JAVA实战」微信小程序工程结构了解(五)
  6. python __main__ __name__ __file__
  7. LeetCode刷题(35)--Add Binary
  8. 第一:Python操作MySQL数据库
  9. 单元格填充为0的html,Excel如何在数据信息表中把空单元格填写为数字“0”
  10. linux generic什么意思_Linux下ps aux中进程状态为Ss,S+, Rs,Ds是什么意思?