java代码美化json格式
json字符美化
=========== 目前发现一个Bug ===========
如果内容中包含空格,会导致显示有问题,因此,如下工具仅供参考
=========== =========== ===========
更多工具详见:https://github.com/SimonAlong/Doramon
/*** @author shizi* @since 2020-11-30 18:37:54*/
public class JsonStrUtils {/*** 专门用于解析json对应的string到界面回车的显示* <p>* 比如:[{"age":12,"name":{"women":"test","age":12,"array":[{"name":"test","age":12}],"tem":[1,2,3,4,5],"haode":"women"}},{"age":22,"name":"haode2"}]* 结果为:* [* {* "age":12,* "name":* {* "women":"test",* "age":12,* "array":* [* {* "name":"test",* "age":12* }* ],* "tem":* [* 1,2,3,4,5* ],* "haode":"women"* }* },* {* "age":22,* "name":"haode2"* }* ]*/public static String prettyJson(String jsonContent) {if (null == jsonContent || "".equals(jsonContent)) {return null;}String jsonContentTem = jsonContent.replace("\n", "").replace(" ", "");StringBuilder stringBuilder = new StringBuilder();// 是否位于数组boolean inArray = false;// 是否有回车boolean haveEnter = true;// 是否有空格boolean haveSpace = false;// 是否已经添加空格boolean haveAppendSpace = false;// 上一个处理者是否是左大括号boolean isRightBracket = false;char[] charList = jsonContentTem.toCharArray();int spaceCount = 0;for (char c : charList) {if (c == ',') {if (inArray) {stringBuilder.append(c);continue;}if (isRightBracket) {stringBuilder.append(",\n");} else {stringBuilder.append(",\n");if (haveSpace) {stringBuilder.append(addSpace(spaceCount));}haveEnter = true;haveAppendSpace = true;}} else if (c == '{') {if (!haveEnter) {stringBuilder.append("\n");}if (haveSpace) {stringBuilder.append(addSpace(spaceCount));}haveSpace = true;haveEnter = true;isRightBracket = false;spaceCount++;stringBuilder.append("{\n");stringBuilder.append(addSpace(spaceCount));haveAppendSpace = true;} else if (c == '}') {spaceCount--;stringBuilder.append("\n");if (haveSpace) {stringBuilder.append(addSpace(spaceCount));}stringBuilder.append("}");haveEnter = true;isRightBracket = true;} else if (c == '[') {if (!haveEnter) {stringBuilder.append("\n");}if (haveSpace) {stringBuilder.append(addSpace(spaceCount));}inArray = true;haveSpace = true;isRightBracket = false;stringBuilder.append("[\n");haveEnter = true;spaceCount++;haveAppendSpace = false;} else if (c == ']') {spaceCount--;stringBuilder.append("\n");if (haveSpace) {stringBuilder.append(addSpace(spaceCount));}stringBuilder.append("]");inArray = false;isRightBracket = false;haveAppendSpace = false;} else {if (c == ':') {inArray = false;}if (!haveAppendSpace) {if (haveSpace) {stringBuilder.append(addSpace(spaceCount));}haveAppendSpace = true;}stringBuilder.append(c);isRightBracket = false;haveEnter = false;}}return stringBuilder.toString();}public static String addSpace(int count) {if (count <= 0) {return "";}StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < count; i++) {stringBuilder.append(" ");}return stringBuilder.toString();}
}
测试:
1.对象
{"a":12,"name":"haode"}
{"a":12,"name":"haode"
}
2.基本数组
[{"age":12,"name":{"women":"test","age":12,"array":[{"name":"test","age":12}]}},{"age":22,"name":"haode2"}]
解析后
[{"age":12,"name":{"women":"test","age":12,"array":[{"name":"test","age":12}]}},{"age":22,"name":"haode2"}
]
3.数组中为基本类型
[{"age":12,"name":{"women":"test","age":12,"array":[{"name":"test","age":12}],"tem":[1,2,3,4,5],"haode":"women"}},{"age":22,"name":"haode2"}]
解析后
[{"age":12,"name":{"women":"test","age":12,"array":[{"name":"test","age":12}],"tem":[1,2,3,4,5],"haode":"women"}},{"age":22,"name":"haode2"}
]
java代码美化json格式相关推荐
- java json数据输出,java服务器端输出JSON格式数据
java服务器端输出JSON格式数据 本文我们讨论如何在服务器端输出 JSON 格式的数据.以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本. 将 String 对象编 ...
- Java代码的基本格式及注释
Java代码的基本格式: 修饰符 class 类名{ 程序代码 } 注:Java中的程序代码必须放在一个类中 在编写时要注意如下: 1.Java中的程序代码可分为:结构定义语句(用于声明一 ...
- 如何用Java代码解析json
如何用Java代码解析json 今天在写项目的时候用到了json,然后尝试着Java代码解析了一下json 用相同的类型定义一个参数,然后json.与定义的参数类型一样的get方法,括号里面就是要解析 ...
- java代码将csv格式的文件导入数据库
java代码将csv格式的文件导入数据库 最近接到了一个需求,将csv文件的内容通过java进行入库操作,在此记录一下整个完整的代码 主要逻辑 读取csv的每一个数据,对数据对应的对象赋值,将对象放入 ...
- java代码把行政区划代码转json格式及sql
数据来源:中华人民共和国民政部 直接上代码: import com.alibaba.fastjson.JSON;import java.io.*; import java.util.ArrayList ...
- Java Servlet生成JSON格式数据并用jQuery显示
1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException; import java.io.PrintWriter; import java.u ...
- 原来JAVA对象转JSON格式的字符串如此简单,返回来暂时不会做,留下纪念下
package info.moogens.mvc.tools.json;import java.lang.reflect.Array; import java.lang.reflect.Field; ...
- 【Java】生成 .json格式文件工具类
package com.glodon.kgb.utils.json;import java.io.File; import java.io.FileOutputStream; import java. ...
- java对象转json格式
2019独角兽企业重金招聘Python工程师标准>>> 使用json-lib将java对象转换成json字符串 学会了在j2ee中使用ajax后,有时候从服务器返回客户端的数据是对象 ...
最新文章
- ACM入门之【离散化】
- HOJ 2576 HOJ 2577 Simple Computing I II 容斥原理
- [POJ1338]Ugly Numbers
- 以下题目需要当场编写实现,,答案自己写
- Arrays 工具类
- 关于双向反射率BRDF的定义
- 视觉SLAM——ORB-SLAM2运行tum数据集,kitti数据集,euroc数据集
- Django的认证系统(auth)
- oralce修改密码教程
- hi3559v100的amp双系统初始化
- 简单的E_mail发送
- 在线客服系统对接微信小程序(客服消息推送)
- JS 字符串 常用方法(截取、替换、拼接)
- 锁记——偏向锁注定过不好这一生
- Hadoop3.X环境配置
- 关于HIPO和IPO
- java中 引用传递_Java中的引用传递
- vue-pdf遇到的问题
- 检测 Linux VPS 是 Xen、OpenVZ 还是 KVM 架构的方法
- React入门(上)
热门文章
- 【转】数据仓库ODS、DW和DM概念区分
- scrapyd部署分布式爬虫
- H5:画布Canvas基础知识讲解(三)之文字、阴影、颜色渐变
- mac访达边栏设置显示文稿、桌面等信息,但是不显示
- 十位互联网一线高工手写Java高级知识,成功入职腾讯
- Python如何免费获取付费文档的数据, 保存word文档
- Android 录像添加时间戳水印
- c++单链表逆置内存结构分析
- 一键 php h5ai,一款不错的PHP目录列表程序:h5ai安装教程
- 农业银行招聘考试题目计算机类,农业银行招聘考试计算机专项练习(二).doc...