Json 格式化工具类 支持Jackson、FastJson、Gson
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相关推荐
- gson json和类转换_带有GSON和抽象类的JSON
gson json和类转换 经过多年使用org.json库在Java中支持JSON数据交换格式后,我已切换到Google Gson . org.json是一个较低层的库,因此您必须创建JSONObje ...
- java json格式化工具类
import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.Property ...
- 常用json框架介绍和Jackson返回结果处理
常用json框架介绍和Jackson返回结果处理 简介:介绍常用json框架和注解的使用,自定义返回json结构和格式 1.常用框架 阿里 fastjson,谷歌gson等 J ...
- 超级好用的json格式化工具
理想的json格式化工具应该具备什么? 你心中的json格式化工具是什么? Json.cn? No No No, 这个已经老掉牙了 理想的json格式化工具应该支持搜索.定位.非法json容错,若实在 ...
- 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)
Json解析工具类 前言 一.各个JSON技术的简介 1.1 FastJson角色 1.2 Jackson角色 1.3 Gson角色 二.使用步骤 2.1 引入库 1.FastJson依赖 2.Jac ...
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比
JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括 ...
- 各种JSON技术对比(Json-lib,Jackson,Gson,Fastjson)
一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括commons-bean ...
- Jackson,Gson,Fastjson比较
JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括 ...
最新文章
- SQL Server LOWER Functions
- 鸿蒙发布官网,鸿蒙发布在即,高情商似乎也非常重要
- 栈空间和堆空间的区别
- 1114. 按序打印
- ajax如何处理程序设计,Struts与Ajax高级程序设计
- 【Flink】FLink checkpoint 某个 subtask 特别耗时 DisconnectException: null
- 编程语言_JavaScript_面试题005
- Java内存溢出异常(下)
- python是什么 自学-你是如何自学 Python 的?
- Yii 2.0 权威指南 (8) 配合数据库使用
- win10开机登录不需要密码默认账号
- 网络爬虫——超级鹰源码下载
- 《高效能人士的7个习惯》PDF,复习笔记(上)
- Java项目:赛事打分系统(java+SSM+Layui+Maven+mysql)
- 环信多人音视频会议功能实现
- HardNet详细解释
- hyper v设置虚拟机动态内存,内存最大最小值
- 最好玩的计算机游戏排行,10款好玩的电脑单机游戏 好玩的单机游戏排行
- Facebook或面临2000000000000美元罚款,扎克伯格认错
- postgresql encode函数
热门文章
- 2011年最值得阅读的财富故事,蒋百荣论商经小赢在智大赢在德
- 批量多次复制依次粘贴工具【编程语言:易语言】
- 实验: GVRP 配置,三层交换机通讯 ,VLAN 间路由,单臂路由与路由器子接口的配置,vlan-单臂路由技术
- 51kid页面卡死解决办法
- 2022年十大知名堡垒机品牌你真的知道吗?
- 8421码,5421码,2421码,余三码之间的区别
- 设置afni环境变量—打开afni加载默认的大脑模板
- android删除界面工具下载,安卓系统软件卸载工具
- linux系统安装报firstboot错,自动安装部署LINUX
- 【行为管理篇】03. 网桥模式连接 ❀ 深信服上网行为管理