前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >将json数据格式化输出到控制台

将json数据格式化输出到控制台

作者头像
FunTester
发布于 2019-08-08 14:27:43
发布于 2019-08-08 14:27:43
1.9K00
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

在做接口测试的过程中,大多数数据交互都使用json格式,但是在控制台输出json的效果远不如浏览器插件实现的漂亮。在找了一些资料后,决定自己写一个格式化输出json信息到控制台的方法,经过一些尝试已经完成。分享如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 输出json
     *
     * @param jsonObject json格式响应实体
     */
    public static JSONObject output(JSONObject jsonObject) {
        if (MapUtils.isEmpty(jsonObject)) {
            output("json 对象是空的!");
            return jsonObject;
        }
        String start = SourceCode.getManyString(SPACE_1, 4);
        String jsonStr = jsonObject.toString();// 先将json对象转化为string对象
        jsonStr = jsonStr.replaceAll("\\\\/", OR);
        int level = 0;// 用户标记层级
        StringBuffer jsonResultStr = new StringBuffer(">  ");// 新建stringbuffer对象,用户接收转化好的string字符串
        for (int i = 0; i < jsonStr.length(); i++) {// 循环遍历每一个字符
            char piece = jsonStr.charAt(i);// 获取当前字符
            // 如果上一个字符是断行,则在本行开始按照level数值添加标记符,排除第一行
            if (i != 0 && '\n' == jsonResultStr.charAt(jsonResultStr.length() - 1)) {
                for (int k = 0; k < level; k++) {
                    jsonResultStr.append(start);
                }
            }
            switch (piece) {
                case ',':
                    // 如果是“,”,则断行
                    char last = jsonStr.charAt(i - 1);
                    if ("\"0123456789le]}".contains(last + EMPTY)) {
                        jsonResultStr.append(piece + LINE);
                    } else {
                        jsonResultStr.append(piece);
                    }
                    break;
                case '{':
                case '[':
                    // 如果字符是{或者[,则断行,level加1
                    jsonResultStr.append(piece + LINE);
                    level++;
                    break;
                case '}':
                case ']':
                    // 如果是}或者],则断行,level减1
                    jsonResultStr.append(LINE);
                    level--;
                    for (int k = 0; k < level; k++) {
                        jsonResultStr.append(start);
                    }
                    jsonResultStr.append(piece);
                    break;
                default:
                    jsonResultStr.append(piece);
                    break;
            }
        }
        output(LINE + "↘ ↘ ↘ ↘ ↘ ↘ ↘ ↘ json ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙" + LINE + jsonResultStr.toString().replaceAll(LINE, LINE + ">  ") + LINE + "↘ ↘ ↘ ↘ ↘ ↘ ↘ ↘ json ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙ ↙");
        return jsonObject;
    }

输出显示效果:

备注:在json数据中存在“,”这种情况以及value非string(数字和null或者科学技术法时)可能会存在一些显示异常,以及value值本身是一个json数据的字符串时候也会把value当做json来处理。总体来说够用,效果比较满意。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
接口自动化通用验证类
在做自动化的过程中,一定会遇到很多验证的点,但是有些验证功能是通用的,所以我封装了一个通用的验证类,来解决重复验证的问题,之前也写过一个,现在这个增加了一下数组的验证,还有一些隐藏bug的修复。话不多说,分享代码,供大家参考:
FunTester
2019/09/27
4550
Java中json字符串中文的处理
中间想过先把中文转成unicode。但是\u会变成\\u,还是有问题,无奈之下,只好自己上场,写了一个JAVA脚本提供给安卓了。
魔王卷子
2019/05/31
3.7K0
二、JSON数据格式
JSON语法规则 ”名称/值“对的集合。例如对象、字典 { "name": "好人", "job": [1, 2, 3, 4, 5] }字符串必须使用双引号。 值的有序列表。例如数组。 [ 1,2,3 ] JSON的值可以是字符串、数值、布尔值、null、对象、数组。 JSON可以独立成文件,扩展名为json。 JavaScript中的JSON json字符串 数据格式符合JSON格式的要求,类型是字符串 var jsonString = '{"name":"张无忌"}' jso
Dreamy.TZK
2020/08/24
2K0
二、JSON数据格式
java网格输出的类
在做测试的时候,经常需要把一些信息输出到控制台,但是格式上比较乱,想弄成一个类似SQL客户端的那个输出格式,在参考了一些资料后自己写了一个简单的控制台网格输出的类,分享代码供大家参考。
FunTester
2019/07/27
1.1K0
Java解析JSON文件「建议收藏」
通常我们需要解析本地的json文件或者服务器上的json文件。我们用来解析json格式的jar包有很多,jackson,fastjson,gson都行。但本人喜欢用fastjson。所以本篇都是以fastjson来解析json文件。
全栈程序员站长
2022/11/04
2K0
JAVA校验JSON数据格式「建议收藏」
在此博文基础上增添了更多校验功能https://blog.csdn.net/weixin_42540829/article/details/88326880
全栈程序员站长
2022/11/17
2K0
php JSON数据格式化输出方法
php 的json_encode能把数组转换为json格式的字符串。字符串没有缩进,中文会转为unicode编码,例如\u975a\u4ed4。人阅读比较困难。现在这个方法在json_encode的基
joshua317
2018/04/16
3.5K0
java生成json格式数据 和 java遍历json格式数据
java 生成json 格式的数据,在需要加入一个创建json的jar包,这个网上有好多,我使用的是org.json的jar包。
全栈程序员站长
2022/07/19
3K0
教你怎么编写高效的JSON工具类
在开发过程中,极有可能会用到JSON数据的传输。这不,笔者在前段时间的开发过程中在http请求后台数据时就用到了JSON与对象和集合之间的转换。在JSON数据组装的过程中,你还在怕一个个字符串拼接出错而烦恼吗?在这里笔者整理了一个完整的工具类,能够帮助大家快速而高效的开发,妈妈再也不用担心我在这一块出错了。
格姗知识圈
2019/07/19
1.2K0
7.JSON格式数据的格式化
有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物。最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的。让我想起来了早在生信技能树论坛创立之初我为了引流,而规划的200个生信工程师面试题。值得继续分享:
生信技能树
2021/03/24
2K0
7.JSON格式数据的格式化
httpclient post发送json数组并解决json乱码问题
业务: 客户端发送json数据,服务端进行解析 client发送json格式: {"data":[{"name":"1;,a","id_no":"222,a","cellphone":"123141a","abode_detail":"213,a","emp_add":"werew3a","app_no":"111111111111a","create_time":"11a"},{"name":"张三","id_no":"null","cellphone":"null","abode_detai
shengjk1
2018/10/24
4.3K0
手把手教你JSON解析完Cube数据,如何输出到Excel
最近公司有一个需求,需要解析Kylin上某个Cube的JSON格式的数据,并输出到Excel文件中。
大数据梦想家
2021/01/27
1.5K0
手把手教你JSON解析完Cube数据,如何输出到Excel
Java中使用fastjson解析json数据方法
 上一篇文章当中,写了关于Java中使用fastjson创建json数据方法,这篇文章写写java中使用fastjson解析json数据的方法。 首先,老样子,还是需要先导入fastjson的jar包,这个jar包可以从百度上搜索然后下载,下载后导入就可以正常使用了。(导包的时候注意要使用alibaba为名的)
吃猫的鱼Code
2023/02/02
1.2K0
基于FastJson实现Json数据文件导入导出解析
今天来记录一个在项目实战中比较实用的方法,主要是针对一些需要存在简单数据文件导入导出的场景,如:数据文件的简单备份、软件升版前后配置导入导出等场景
灰小猿
2024/05/25
3240
将JSON对象格式化输出(breakdown篇)
上篇提到的prettyjson工具,经我改写之后,可以JavaScript对象格式输出缩进排版的JSON格式。如下所示:
用户3579639
2018/10/19
2K0
2048——Java控制台版本
贪心、杂凑、递归、分类、评分、哈希、共识、聚类、分治、启发式、粒子群、最大期望、最小完成时间、序列最小优化。。。。算法无数,但是基础类似,无非坐标处理。那么开启一个坐标小游戏2048吧~
红目香薰
2022/11/29
5780
2048——Java控制台版本
在线请求天气API,并解析其中的json数据予以显示
请求互联网信息提供商并取得返回的数据使用到HttpURLConnection,等待数据下载成功得到的Json,把它 解析成程序可利用的数据,使用到JSONObject
爱因斯坦福
2018/09/10
6.1K0
JSON格式化
我个人主要是做一些后端的工作,比如php、python、c之类的,c比较少,最主要的是php,不过我非常喜欢js,所以经常会愿意去写一些小玩意自娱自乐。
江湖安得便相忘
2019/08/21
3.9K0
JSON格式化
Xcode控制台输出json数据乱码转为中文
我们常常需要使用NSLog在控制台输出内容查看一些结果是否正确或者获取信息等。但是由于中文编码格式的问题,直接输出json数据时中文总会以原始码文显示,而不是正常显示中文,之前搜索方法时找到如下方法:
Cloudox
2021/11/23
1.7K0
Spring学习笔记(三十五)——小技巧:配置全局跨域、全局⽇期格式化、读取本地json
根据官⽅⽂档 Custom JSON Serializers and Deserializers ,想要接管Jackson的JSON的序列化和反序列化,只需通过注解 @JsonComponent 来声明其静态内部类即可。
不愿意做鱼的小鲸鱼
2022/09/26
5910
Spring学习笔记(三十五)——小技巧:配置全局跨域、全局⽇期格式化、读取本地json
相关推荐
接口自动化通用验证类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验