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格式相关推荐

  1. java json数据输出,java服务器端输出JSON格式数据

    java服务器端输出JSON格式数据 本文我们讨论如何在服务器端输出 JSON 格式的数据.以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本. 将 String 对象编 ...

  2. Java代码的基本格式及注释

    Java代码的基本格式:  修饰符 class 类名{      程序代码 } 注:Java中的程序代码必须放在一个类中 在编写时要注意如下: 1.Java中的程序代码可分为:结构定义语句(用于声明一 ...

  3. 如何用Java代码解析json

    如何用Java代码解析json 今天在写项目的时候用到了json,然后尝试着Java代码解析了一下json 用相同的类型定义一个参数,然后json.与定义的参数类型一样的get方法,括号里面就是要解析 ...

  4. java代码将csv格式的文件导入数据库

    java代码将csv格式的文件导入数据库 最近接到了一个需求,将csv文件的内容通过java进行入库操作,在此记录一下整个完整的代码 主要逻辑 读取csv的每一个数据,对数据对应的对象赋值,将对象放入 ...

  5. java代码把行政区划代码转json格式及sql

    数据来源:中华人民共和国民政部 直接上代码: import com.alibaba.fastjson.JSON;import java.io.*; import java.util.ArrayList ...

  6. Java Servlet生成JSON格式数据并用jQuery显示

    1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException; import java.io.PrintWriter; import java.u ...

  7. 原来JAVA对象转JSON格式的字符串如此简单,返回来暂时不会做,留下纪念下

    package info.moogens.mvc.tools.json;import java.lang.reflect.Array; import java.lang.reflect.Field; ...

  8. 【Java】生成 .json格式文件工具类

    package com.glodon.kgb.utils.json;import java.io.File; import java.io.FileOutputStream; import java. ...

  9. java对象转json格式

    2019独角兽企业重金招聘Python工程师标准>>> 使用json-lib将java对象转换成json字符串 学会了在j2ee中使用ajax后,有时候从服务器返回客户端的数据是对象 ...

最新文章

  1. ACM入门之【离散化】
  2. HOJ 2576 HOJ 2577 Simple Computing I II 容斥原理
  3. [POJ1338]Ugly Numbers
  4. 以下题目需要当场编写实现,,答案自己写
  5. Arrays 工具类
  6. 关于双向反射率BRDF的定义
  7. 视觉SLAM——ORB-SLAM2运行tum数据集,kitti数据集,euroc数据集
  8. Django的认证系统(auth)
  9. oralce修改密码教程
  10. hi3559v100的amp双系统初始化
  11. 简单的E_mail发送
  12. 在线客服系统对接微信小程序(客服消息推送)
  13. JS 字符串 常用方法(截取、替换、拼接)
  14. 锁记——偏向锁注定过不好这一生
  15. Hadoop3.X环境配置
  16. 关于HIPO和IPO
  17. java中 引用传递_Java中的引用传递
  18. vue-pdf遇到的问题
  19. 检测 Linux VPS 是 Xen、OpenVZ 还是 KVM 架构的方法
  20. React入门(上)

热门文章

  1. 【转】数据仓库ODS、DW和DM概念区分
  2. scrapyd部署分布式爬虫
  3. H5:画布Canvas基础知识讲解(三)之文字、阴影、颜色渐变
  4. mac访达边栏设置显示文稿、桌面等信息,但是不显示
  5. 十位互联网一线高工手写Java高级知识,成功入职腾讯
  6. Python如何免费获取付费文档的数据, 保存word文档
  7. Android 录像添加时间戳水印
  8. c++单链表逆置内存结构分析
  9. 一键 php h5ai,一款不错的PHP目录列表程序:h5ai安装教程
  10. 农业银行招聘考试题目计算机类,农业银行招聘考试计算机专项练习(二).doc...