java实现JSON字符串格式化输出

 更新时间:2024年01月09日 09:33:30   作者:爱码少年  
这篇文章主要为大家详细介绍了如何使用java实现JSON字符串格式化输出,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下

一、JSON 字符串格式化输出

json字符串格式化输出fastjson、gson、jackson实现

import org.junit.jupiter.api.Test;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import lombok.extern.slf4j.Slf4j;

/**
 * Json字符串格式化
 */
@Slf4j
public class JsonPrettyFormat
{
    private String jsonString =
        "{\"_index\":\"book_shop\",\"_type\":\"it_book\",\"_id\":\"1\",\"_score\":1.0, \"_source\":{\"name\": \"Java编程思想(第4版)\",\"author\": \"[美] Bruce Eckel\",\"category\": \"编程语言\", \"price\": 109.0,\"publisher\": \"机械工业出版社\",\"date\": \"2007-06-01\",\"tags\": [ \"Java\", \"编程语言\" ]}}";
    
    @Test
    public void fastjsonTest()
    {
        JSONObject object = JSONObject.parseObject(jsonString);
        String pretty = JSON.toJSONString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
        log.info("{} ", pretty);
    }
    
    @Test
    public void gsonTest()
    {
        JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String pretty = gson.toJson(jsonObject);
        log.info("{} ", pretty);
    }
    
    @Test
    public void jacksonTest()
        throws JsonMappingException, JsonProcessingException
    {
        ObjectMapper mapper = new ObjectMapper();
        Object obj = mapper.readValue(jsonString, Object.class);
        String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
        log.info("{} ", pretty);
        
        JsonNode jsonNode = mapper.readTree(jsonString);
        pretty = jsonNode.toPrettyString();
        log.info("{} ", pretty);
    }
}

二、运行结果

2023-12-19 17:26:19.704  INFO 21640 --- [           main] c.f.t.r.j.JsonPrettyFormat               : {
    "_index":"book_shop",
    "_type":"it_book",
    "_source":{
        "date":"2007-06-01",
        "author":"[美] Bruce Eckel",
        "price":109.0,
        "name":"Java编程思想(第4版)",
        "publisher":"机械工业出版社",
        "category":"编程语言",
        "tags":[
            "Java",
            "编程语言"
        ]
    },
    "_id":"1",
    "_score":1.0

2023-12-19 17:26:19.744  INFO 21640 --- [           main] c.f.t.r.j.JsonPrettyFormat               : {
  "_index": "book_shop",
  "_type": "it_book",
  "_id": "1",
  "_score": 1.0,
  "_source": {
    "name": "Java编程思想(第4版)",
    "author": "[美] Bruce Eckel",
    "category": "编程语言",
    "price": 109.0,
    "publisher": "机械工业出版社",
    "date": "2007-06-01",
    "tags": [
      "Java",
      "编程语言"
    ]
  }

2023-12-19 17:26:19.991  INFO 21640 --- [           main] c.f.t.r.j.JsonPrettyFormat               : {
  "_index" : "book_shop",
  "_type" : "it_book",
  "_id" : "1",
  "_score" : 1.0,
  "_source" : {
    "name" : "Java编程思想(第4版)",
    "author" : "[美] Bruce Eckel",
    "category" : "编程语言",
    "price" : 109.0,
    "publisher" : "机械工业出版社",
    "date" : "2007-06-01",
    "tags" : [ "Java", "编程语言" ]
  }

2023-12-19 17:26:19.999  INFO 21640 --- [           main] c.f.t.r.j.JsonPrettyFormat               : {
  "_index" : "book_shop",
  "_type" : "it_book",
  "_id" : "1",
  "_score" : 1.0,
  "_source" : {
    "name" : "Java编程思想(第4版)",
    "author" : "[美] Bruce Eckel",
    "category" : "编程语言",
    "price" : 109.0,
    "publisher" : "机械工业出版社",
    "date" : "2007-06-01",
    "tags" : [ "Java", "编程语言" ]
  }

三、源码传送

https://gitee.com/00fly/effict-side/blob/master/springboot-cache/src/test/java/com/fly/test/restful/json/JsonPrettyFormat.java

到此这篇关于java实现JSON字符串格式化输出的文章就介绍到这了,更多相关java JSON字符串格式化输出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis SqlSession执行流程小结

    MyBatis SqlSession执行流程小结

    本文主要介绍了MyBatis SqlSession执行流程小结,涵盖动态代理、Executor、StatementHandler等组件,及参数处理、结果映射与缓存机制,感兴趣的可以了解一下
    2025-05-05
  • 在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行)

    在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行)

    这篇文章主要介绍了在Java中轻松将HTML格式文本转换为纯文本的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • JAVA实现Date日期加一天具体方法

    JAVA实现Date日期加一天具体方法

    这篇文章主要给大家介绍了关于JAVA实现Date日期加一天的相关资料,因为在项目中遇到了需要将日期进行加减一些天数的操作,文中给出了简单的代码示例,需要的朋友可以参考下
    2023-07-07
  • Java连接六类数据库技巧全攻略

    Java连接六类数据库技巧全攻略

    本文主要为大家介绍了Java与Oracle、DB2、Sql Server、Sybase、MySQL、PostgreSQL等数据库连接的方法。
    2015-09-09
  • mybatis Reflector反射类的具体使用

    mybatis Reflector反射类的具体使用

    Reflector类是MyBatis反射模块的核心,负责处理类的元数据,以实现属性与数据库字段之间灵活映射的功能,本文主要介绍了mybatis Reflector反射类的具体使用,感兴趣的可以了解一下
    2024-02-02
  • Java实现将汉字转化为汉语拼音的方法

    Java实现将汉字转化为汉语拼音的方法

    这篇文章主要介绍了Java实现将汉字转化为汉语拼音的方法,实例演示了Java引用pinyin4j库实现汉子转化成拼音的使用技巧,需要的朋友可以参考下
    2015-12-12
  • Java HashMap源码深入分析讲解

    Java HashMap源码深入分析讲解

    在java开发中,HashMap是最常用、最常见的集合容器类之一,下面一起温故一下,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Spring事务annotation原理详解

    Spring事务annotation原理详解

    这篇文章主要介绍了Spring事务annotation原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 如何解决@Data和@Builder的冲突问题

    如何解决@Data和@Builder的冲突问题

    在使用@Data和@Builder注解时,可能会导致无法使用无参构造方法创建实体类实例的问题,本文提出了两种解决方法:一是手动添加无参构造并使用@Tolerate注解兼容;二是同时添加@AllArgsConstructor和@NoArgsConstructor注解,既添加无参构造也添加全参构造
    2024-10-10
  • 深入理解Java虚拟机_动力节点Java学院整理

    深入理解Java虚拟机_动力节点Java学院整理

    虚拟机是一种抽象化的计算机,通过在实际的计算机上模拟各种计算机功能来实现的,下面通过本文给大家分享Java虚拟机相关知识,感兴趣的朋友一起看看吧
    2017-06-06

最新评论