Json 格式化工具类

1、使用Jackson的DefaultPrettyPrinter来格式化json

 /*** 将对象按以格式化json的方式写出* 使用的json为Jackson** @param obj obj*/public static String formatJson(Object obj) throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();// 配置四个空格的缩进DefaultPrettyPrinter.Indenter indenter = new DefaultIndenter("    ", DefaultIndenter.SYS_LF);DefaultPrettyPrinter printer = new DefaultPrettyPrinter();printer.indentObjectsWith(indenter); // Indent JSON objectsprinter.indentArraysWith(indenter);  // Indent JSON arraysreturn mapper.writer(printer).writeValueAsString(obj);}

2、使用Jackson的ObjectMapper的writerWithDefaultPrettyPrinter()来格式化json

/*** 输出格式化的json字符串* 使用的json为Jackson** @param obj 任意对象* @return 格式化的json字符串* @throws JsonProcessingException jsonProcessingException*/public static String formatJson2(Object obj) throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);}

3、使用FastJson来格式化json

 /*** 输出格式化的json字符串* 使用的json为FastJson* <p>* 加上SerializerFeature.DisableCircularReferenceDetect关闭循环引用* 解决:* [* {* "playVideo":"观看视频",* "aboutVersion":"版本详情"* },* {"$ref":"$[0]"},* {"$ref":"$[0]"},* {"$ref":"$[0]"}* ]** @param obj obj* @return 格式化的json字符串*/public static String formatJson3(Object obj) {// 输出格式化后的字符串String pretty = JSON.toJSONString(obj, SerializerFeature.PrettyFormat,SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullListAsEmpty, SerializerFeature.DisableCircularReferenceDetect);return pretty;}

4、使用Gson来格式化json

 /*** 输出格式化的json字符串* 使用的json为Gson** @param obj obj* @return 格式化的json字符串*/public static String formatJson4(Object obj) {Gson gson = new GsonBuilder().setPrettyPrinting().create();return gson.toJson(obj);}

5、完整代码

package cn.lyf.utils;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.util.DefaultIndenter;
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.extern.slf4j.Slf4j;/*** @author lyf* @description:* @version: v1.0* @since 2022-05-06 21:12*/
@Slf4j
public final class JsonUtil {private JsonUtil() {}/*** 将对象按以格式化json的方式写出* 使用的json为Jackson** @param obj obj*/public static String formatJson(Object obj) throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();// 配置四个空格的缩进DefaultPrettyPrinter.Indenter indenter = new DefaultIndenter("    ", DefaultIndenter.SYS_LF);DefaultPrettyPrinter printer = new DefaultPrettyPrinter();printer.indentObjectsWith(indenter); // Indent JSON objectsprinter.indentArraysWith(indenter);  // Indent JSON arraysreturn mapper.writer(printer).writeValueAsString(obj);}/*** 输出格式化的json字符串* 使用的json为Jackson** @param obj 任意对象* @return 格式化的json字符串* @throws JsonProcessingException jsonProcessingException*/public static String formatJson2(Object obj) throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);}/*** 输出格式化的json字符串* 使用的json为FastJson* <p>* 加上SerializerFeature.DisableCircularReferenceDetect关闭循环引用* 解决:* [* {* "playVideo":"观看视频",* "aboutVersion":"版本详情"* },* {"$ref":"$[0]"},* {"$ref":"$[0]"},* {"$ref":"$[0]"}* ]** @param obj obj* @return 格式化的json字符串*/public static String formatJson3(Object obj) {// 输出格式化后的字符串String pretty = JSON.toJSONString(obj, SerializerFeature.PrettyFormat,SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullListAsEmpty, SerializerFeature.DisableCircularReferenceDetect);return pretty;}/*** 输出格式化的json字符串* 使用的json为Gson** @param obj obj* @return 格式化的json字符串*/public static String formatJson4(Object obj) {Gson gson = new GsonBuilder().setPrettyPrinting().create();return gson.toJson(obj);}
}

Json 格式化工具类 支持Jackson、FastJson、Gson相关推荐

  1. gson json和类转换_带有GSON和抽象类的JSON

    gson json和类转换 经过多年使用org.json库在Java中支持JSON数据交换格式后,我已切换到Google Gson . org.json是一个较低层的库,因此您必须创建JSONObje ...

  2. java json格式化工具类

    import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.Property ...

  3. 常用json框架介绍和Jackson返回结果处理

    常用json框架介绍和Jackson返回结果处理     简介:介绍常用json框架和注解的使用,自定义返回json结构和格式 1.常用框架 阿里 fastjson,谷歌gson等         J ...

  4. 超级好用的json格式化工具

    理想的json格式化工具应该具备什么? 你心中的json格式化工具是什么? Json.cn? No No No, 这个已经老掉牙了 理想的json格式化工具应该支持搜索.定位.非法json容错,若实在 ...

  5. 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)

    Json解析工具类 前言 一.各个JSON技术的简介 1.1 FastJson角色 1.2 Jackson角色 1.3 Gson角色 二.使用步骤 2.1 引入库 1.FastJson依赖 2.Jac ...

  6. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  7. 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比

    JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括 ...

  8. 各种JSON技术对比(Json-lib,Jackson,Gson,Fastjson)

    一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括commons-bean ...

  9. Jackson,Gson,Fastjson比较

    JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括 ...

最新文章

  1. SQL Server LOWER Functions
  2. 鸿蒙发布官网,鸿蒙发布在即,高情商似乎也非常重要
  3. 栈空间和堆空间的区别
  4. 1114. 按序打印
  5. ajax如何处理程序设计,Struts与Ajax高级程序设计
  6. 【Flink】FLink checkpoint 某个 subtask 特别耗时 DisconnectException: null
  7. 编程语言_JavaScript_面试题005
  8. Java内存溢出异常(下)
  9. python是什么 自学-你是如何自学 Python 的?
  10. Yii 2.0 权威指南 (8) 配合数据库使用
  11. win10开机登录不需要密码默认账号
  12. 网络爬虫——超级鹰源码下载
  13. 《高效能人士的7个习惯》PDF,复习笔记(上)
  14. Java项目:赛事打分系统(java+SSM+Layui+Maven+mysql)
  15. 环信多人音视频会议功能实现
  16. HardNet详细解释
  17. hyper v设置虚拟机动态内存,内存最大最小值
  18. 最好玩的计算机游戏排行,10款好玩的电脑单机游戏 好玩的单机游戏排行
  19. Facebook或面临2000000000000美元罚款,扎克伯格认错
  20. postgresql encode函数

热门文章

  1. 2011年最值得阅读的财富故事,蒋百荣论商经小赢在智大赢在德
  2. 批量多次复制依次粘贴工具【编程语言:易语言】
  3. 实验: GVRP 配置,三层交换机通讯 ,VLAN 间路由,单臂路由与路由器子接口的配置,vlan-单臂路由技术
  4. 51kid页面卡死解决办法
  5. 2022年十大知名堡垒机品牌你真的知道吗?
  6. 8421码,5421码,2421码,余三码之间的区别
  7. 设置afni环境变量—打开afni加载默认的大脑模板
  8. android删除界面工具下载,安卓系统软件卸载工具
  9. linux系统安装报firstboot错,自动安装部署LINUX
  10. 【行为管理篇】03. 网桥模式连接 ❀ 深信服上网行为管理