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

如何使用Go语言将多行JSON转换为单行JSON

Go语言实现多行JSON转紧凑单行JSON方案

核心实现基于Go标准库encoding/json完成,无需引入第三方依赖,也不会误破坏JSON值内的合法空格、换行内容,稳定性远高于字符串/正则替换的粗暴实现。

实现逻辑

  • 先将带缩进、换行、多余空格的多行JSON反序列化为通用结构,过程中会自动忽略所有格式类空白字符
  • 再将解析后的结构重新序列化为JSON,默认输出就是无任何多余格式字符的紧凑单行结果

完整示例代码

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	// 待转换的多行带缩进JSON输入
	multiLineInput := `{
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }`

	// 第一步:反序列化解析JSON,自动过滤格式类空白
	var parsedData interface{}
	if err := json.Unmarshal([]byte(multiLineInput), &parsedData); err != nil {
		panic(fmt.Sprintf("JSON解析失败: %v", err))
	}

	// 第二步:序列化为紧凑单行JSON
	singleLineOutput, err := json.Marshal(parsedData)
	if err != nil {
		panic(fmt.Sprintf("JSON序列化失败: %v", err))
	}

	// 打印转换结果
	fmt.Println(string(singleLineOutput))
}

运行效果

执行上述代码后,控制台输出结果完全符合要求:

{"release_date":"2004-11-09","status":"retired","engine":"Gecko","engine_version":"1.7"}

注意事项

禁止直接使用字符串替换、正则匹配删除空格/换行的方式实现转换:如果JSON的字段值本身包含空格、换行字符,这类粗暴替换会修改原始业务数据,导致JSON内容损坏。基于标准库解析再序列化的方案只会移除JSON结构层面的多余格式字符,会完整保留字段值内的所有合法内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:15:43