有人知道用Go打印JSON输出的简单方法吗?

The stock http://golang.org/pkg/encoding/json/ package does not seem to include functionality for this (EDIT: it does, see accepted answer) and a quick google doesn't turn up anything obvious.

我正在寻找的用途既可以漂亮地打印json.Marshal的结果,也可以格式化来自任何地方的充满JSON的字符串,因此更易于出于调试目的进行读取.

推荐答案

By pretty-print, I assume you mean indented, like so

{
    "data": 1234
}

而不是

{"data":1234}

最简单的方法是使用MarshalIndent,这将允许您指定希望通过indent参数缩进的方式.因此,json.MarshalIndent(data, "", " ")将使用四个空格进行缩进打印.

Json相关问答推荐

Elasticsearch Go客户端错误:无效的SON格式:在中间件中索引文档时出错

时间序列的Vega Lite分组条形图

在Golang中从 struct 手动创建JSON对象

Oracle plsql:如何将json文件加载到嵌套表中

如何让JSON子查询在没有行的情况下返回空数组而不是NULL

Moshi:序列化 List 时出现问题

Powershell解析JSON文件中的键或值

在Databricks中如何将JSON文件作为字典读取

使用 jq 将非统一的 json 输出转换为汇总表

嵌套存储在字符串变量中的 JSON 对象

如何在linux中用jq过滤json数组?

Jolt - 在同一级别添加时组合值的问题

缺少所需的请求正文内容:org.springframework.web.method.HandlerMethod$HandlerMethodParameter

Android JSON 库的性能和可用性比较

没有默认构造函数的杰克逊第 3 方类

在视图中将 .Net 对象转换为 JSON 对象

将序列化表单的数据转换为 json 对象

将 javascript 对象或数组转换为 json 以获取 ajax 数据

Python 到 JSON 序列化在十进制上失败

如何使用 SwiftyJSON 遍历 JSON?