You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何用Jackson将格式化JSON转回单行紧凑格式?

将格式化JSON转回紧凑单行格式的方法

嗨,这事儿其实挺简单的,你平时用的Jackson和GSON这两个工具都能轻松搞定这个需求,我给你分别拆解具体实现方式:

使用Jackson实现

Jackson默认生成的就是紧凑格式的JSON,只要关闭它的缩进输出功能就行。步骤很清晰:

  1. 先把格式化后的JSON字符串解析成Java对象;
  2. 配置ObjectMapper禁用缩进输出;
  3. 再把Java对象序列化为紧凑格式的JSON字符串。

代码示例:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class JsonCompactConverter {
    public static void main(String[] args) throws Exception {
        // 你的格式化JSON字符串
        String prettyFormattedJson = "{ \"a\": \"b\", \"c\": \"d\" }";
        
        ObjectMapper mapper = new ObjectMapper();
        // 解析格式化JSON为Java对象
        Object jsonData = mapper.readValue(prettyFormattedJson, Object.class);
        
        // 关闭缩进输出,启用紧凑模式
        mapper.disable(SerializationFeature.INDENT_OUTPUT);
        String compactJson = mapper.writeValueAsString(jsonData);
        
        System.out.println(compactJson); // 输出结果: {"a":"b","c":"d"}
    }
}

使用GSON实现

GSON的逻辑类似,只要你创建Gson实例的时候不要调用setPrettyPrinting(),它默认就会生成紧凑格式的JSON。具体代码如下:

import com.google.gson.Gson;

public class GsonCompactConverter {
    public static void main(String[] args) {
        String prettyFormattedJson = "{ \"a\": \"b\", \"c\": \"d\" }";
        
        // 直接创建基础Gson实例,不要加美化配置
        Gson gson = new Gson();
        // 解析格式化JSON为Java对象
        Object jsonData = gson.fromJson(prettyFormattedJson, Object.class);
        
        // 序列化为紧凑格式
        String compactJson = gson.toJson(jsonData);
        System.out.println(compactJson); // 输出结果: {"a":"b","c":"d"}
    }
}

小提醒

别想着自己写个正则或者字符串替换去删空格换行,虽然看起来简单,但很容易踩坑——比如JSON字符串值里的空格是需要保留的,手动处理很容易误删。用专业的JSON库处理才是最稳妥的方式。

内容的提问来源于stack exchange,提问作者malana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:31:00