public class ForMatJSONStr {

public static void main(String[] args) {

String jsonStr = "{\"id\":\"1\",\"name\":\"a1\",\"obj\":{\"id\":11,\"name\":\"a11\",\"array\":[{\"id\":111,\"name\":\"a111\"},{\"id\":112,\"name\":\"a112\"}]}}";

String fotmatStr = ForMatJSONStr.format(jsonStr);

//fotmatStr = fotmatStr.replaceAll("\n", "
");

//fotmatStr = fotmatStr.replaceAll("\t", "    ");

System.out.println(fotmatStr);

}

/**

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

*/

public static String format(String jsonStr) {

int level = 0;

StringBuffer jsonForMatStr = new StringBuffer();

for(int i=0;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(int level){

StringBuffer levelStr = new StringBuffer();

for(int levelI = 0;levelI

levelStr.append("\t");

}

return levelStr.toString();

}

}

输出结果如下:

73b88ea00d02db45da3674596fdaaa79.png

代码仅供参考,其中对于json中原有\n \t 或者
的情况未做过多考虑

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

在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...

java中的JSON数据转换方法fastjson

1 maven工程引入fastjson <?xml version="1.0" encoding="UTF-8"?>

JAVA中使用JSON进行数据传递

最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...

转载:JAVA中使用JSON进行数据传递

转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...

SpringBoot中使用Fastjson&sol;Jackson对JSON序列化格式化输出的若干问题

来源 :https://my.oschina.net/Adven/blog/3036567 使用springboot-web编写rest接口,接口需要返回json数据,目前国内比较常用的fastjso ...

JSON&lpar;三)——java中对于JSON格式数据的解析之json-lib与jackson

java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...

java读取url中json文件中的json数据

有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...

PHP json数据格式化方法

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

关于mysql中存储json数据的读取问题

在mysql中存储json数据,字段类型用text,java实体中用String接受. 返回前端时(我这里返回前端的是一个map),为了保证读取出的数据排序错乱问题,定义Map时要用LinkedHas ...

随机推荐

解密jQuery内核 样式操作

基础回顾 jQuery里节点样式读取以及设置都是通过.css()这个方法来实现的,本章通一下分解探究下jquery里这部分代码的实现 那么jQuery要处理样式的哪些问题? 先简单回顾下样式操作会遇到 ...

使用DB4o做一个&period;Net版的website&lpar;一&rpar;环境

一个机缘巧合之下,知道了DB4o这个数据库引擎,下载查看之后,被其方便.高效.以及便捷的管理方式锁折服. 故决定使用其做一个.NET版本的web站点,来巩固学到的知识,以及为后来人做一点点贡献. 首先 ...

第一个Sprint冲刺第三天

讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:如何将新学的技术应用于四则运算项目中 讨论地点:宿舍 进展:跟预期相差不远

selenium-webdriver&lpar;python&rpar; &lpar;十&rpar; 如何处理下拉框

本节重点 处理下拉框 switch_to_alert() accept() 下拉框是我们最常见的一种页面元素,对于一般的元素,我们只需要一次就定位,但下拉框里的内容需要进行两次定位,先定位到下拉框,再 ...

js自执行函数表达式

// 下面2个括弧()都会立即执行 (function () { /* code */ } ()); // 推荐使用这个(function () { /* code */ })(); // 但是这个也 ...

对于JavaBean&plus;Servlet&plus;SqlServer的代码总结和打包调用

日期:2019.3.24 博客期:049 星期日 说起来我已经说过很多次前台的应用技术了呢!这一次我是要将这一部分打包,做成配套的制作工具: 当前我已经打包成功,想要下载的同学可以进入我的GitHub ...

指导手册02:伪分布式安装Hadoop&lpar;ubuntuLinux&rpar;

指导手册02:伪分布式安装Hadoop(ubuntuLinux)   Part 1:安装及配置虚拟机 1.安装Linux. 1.安装Ubuntu1604 64位系统 2.设置语言,能输入中文 3.创建 ...

vue点击元素变色兄弟元素不变色

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐