JSON字符串控制台格式化输出 java
1.正常情况下返回的json数据格式如下:
{"header":{"transSn":"e33128bb7622462ebfb2cbfcc46baa14","dateTime":"20181002110000","serviceCode":"********","appId":"999999999999","bizId":"000000","version":"1.0","resType":"A","resCode":"SSS000","resMsg":"交易成功(业务附加消息:*****)"},"resBody":{"operator":"lgh","rowNumStart":"1","pageRowNum":"100","pageFlag":"0","totalRowNum":"1","orderFlag":"0","orderField":"","result":[{"flag":"1","riskCode":"00567000","riskName":"567*********","prem":"520.00","amntOrMult":"***","amnt":"200000","polNo":"12177"}]}}
默认都是一行输出,或者在HTML进过一些插件格式化之后才会显示比较美观的格式。那么在Java后台如何进行json格式化输出呢下面直接贴代码。
2.可以封装一个工具类专门转换json格式化:
/**
* @param resString
* @return String
* @throws
* @Description 响应数据格式化
* @author lgh
* @date 2018/10/29-13:45
*/
private String responseFormat(String resString){ StringBuffer jsonForMatStr = new StringBuffer();
int level = 0;
for(int index=0;index<resString.length();index++)//将字符串中的字符逐个按行输出
{
//获取s中的每个字符
char c = resString.charAt(index); //level大于0并且jsonForMatStr中的最后一个字符为\n,jsonForMatStr加入\t
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();
}
/**
* @param level
* @return
* @throws
* @author lgh
* @date 2018/10/29-14:29
*/
private String getLevelStr(int level) {
StringBuffer levelStr = new StringBuffer();
for (int levelI = 0; levelI < level; levelI++) {
levelStr.append("\t");
}
return levelStr.toString();
}
3.同样的数据输出之后就达到预期效果:
{
"header":{
"transSn":"e33128bb7622462ebfb2cbfcc46baa14",
"dateTime":"20181002110000",
"serviceCode":"********",
"appId":"999999999999",
"bizId":"000000",
"version":"1.0",
"resType":"A",
"resCode":"SSS000",
"resMsg":"交易成功(业务附加消息:***)"
},
"resBody":{
"operator":"lgh",
"rowNumStart":"1",
"pageRowNum":"100",
"pageFlag":"0",
"totalRowNum":"1",
"orderFlag":"0",
"orderField":"",
"result":[
{
"flag":"1",
"riskCode":"00567000",
"riskName":"567 ****",
"prem":"520.00",
"amntOrMult":"***",
"amnt":"200000",
"polNo":"12177"
}
]
}
}
如有披露或问题欢迎留言或者入群探讨(仅仅是个json格式化的工具分享)
---------------------
作者:一页知秋否
来源:CSDN
原文:https://blog.csdn.net/qq_39470733/article/details/83506752
版权声明:本文为博主原创文章,转载请附上博文链接!
JSON字符串控制台格式化输出 java的更多相关文章
- net.sf.json日期类型格式化输出
net.sf.json 日期类型格式化输出 Date, Timestamp ; 编写工具类 package cn.jorcen.commons.util; import java.text.DateF ...
- PHP json字符串,格式化缩进显示
PHP json字符串,格式化显示 /** * 格式化 */ class JsonFormatHelper { /** * json字符串缩进显示 * @param unknown $json * @ ...
- #python str.format 方法被用于字符串的格式化输出。
#python str.format 方法被用于字符串的格式化输出. #''.format() print('{0}+{1}={2}'.format(1,2,3)) #1+2=3 可见字符串中大括号内 ...
- python - 字符串的格式化输出
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_2_str.py@ide: PyCharm Community ...
- Python基础学习_01字符串的拼接(字符串的格式化输出)
# 字符串的拼接 ---字符串的格式化输出 # 字符串的拼接 ---字符串的格式化输出 name = input("name:") age = input("age:&q ...
- 模拟实现JSON.stringiry 的格式化输出
前言 这是一道笔试题,要求模拟实现JSON.stringiry 的格式化输出,按照层级缩进,输出易读格式,即完成以下方法 JSON.stringify(jsObj, null, 4); // 缩进4个 ...
- 对Json字符串进行格式化显示
很多时候,我们拿Json字符串作为返回结果,但是当数据量多的时候,一堆的Json字符串看起来很不直观,这时候我们可以使用以下办法将Json字符串格式化一下再输出 var JsonUti = { //定 ...
- 『无为则无心』Python基础 — 10、Python字符串的格式化输出
目录 1.什么是格式化输出 2.Python格式化输出的五种方式 方式一:字符串之间用+号拼接 方式二:print()函数可同时输出多个字符串 方式三:占位符方式 方式四:f格式化方式(推荐) 方式五 ...
- 【Python④】python恼人的字符串,格式化输出
恼人的字符串 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码 ...
随机推荐
- nexus 匿名用户的问题。
为了做到安全和不浪费我们自己的服务器资源,要绝对拒绝匿名用户进行访问: 1,不允许匿名用户访问 2,禁用匿名的账号 以下是这2点的设置图. ============================== ...
- 使用element-ui中的el-upload组件时携带其他参数
解决方法:// template <el-upload action="/api/oss/file/add" :headers="headers" // ...
- leetcode-64. 最小路径和 · vector + DP
题面 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right wh ...
- 如何把SAP WebIDE里的Web项目同Github仓库连接起来
我们在SAP WebIDE里进行UI5应用开发时,当然也希望能将开发的代码纳入到github版本管理中去. 步骤其实非常简单. 右键点击WebIDE里UI5应用,git->Initialize ...
- “高可用性”(High Availability)??
“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性. 计算机的高可用性 计算机系统的可用性用平均无故障时间(MTTF)来度量 ...
- [Python] For 嵌套循环打印图形 nested loop - 练习题
[python的for循环嵌套打印如下图形] 图形一: ******* ******* ******* ******* 图形二: * *** ***** ******* 图形三: * *** **** ...
- @@identity, scope_identity ident_current 的区别
- Cairo初探
https://blog.csdn.net/flexwang_/article/details/38000401 二维解析pdf
- Linux系统运维之修炼秘法
在这个现如今的互联网高速发展的时代,如何才能保持住一门铁的饭碗.无疑最稳妥的自然就是选择一门任何时代都不会落伍的技能,来选择深入学习研究.大家可能觉得这一期的Linux就该这么学的话题比较世俗.但是不 ...
- 201871010111-刘佳华《面向对象程序设计(java)》第十七周学习总结
201871010111-刘佳华<面向对象程序设计(java)>第十七周学习总结 实验十七 线程同步控制 实验时间 2019-12-20 第一部分:理论知识总结 16.Java 的线程调 ...