从GoLang的响应中检索了漂亮的JSON

时间:2018-10-10 13:08:02

标签: json go

我从端点检索JSON作为GET响应

response, _ := http.Get("https://website-returning-json-value.com")
data, _ := ioutil.ReadAll(response.Body)
w.Write(data)

它返回给我一个JSON值,可以,但是非常难看(没有缩进等)。我想使它漂亮。我已经读过像MarshalIndent这样的util函数可以完成这项工作,但是它适用于JSON对象(?),ReadAll函数返回[] byte,所以它不起作用。我阅读了有关encoding / json包的文档,但是有很多信息,但我有些困惑/困惑。

据我了解,应该通过ReadAll函数获取[] byte->将其转换为JSON->修饰它->再次变为[] byte。

1 个答案:

答案 0 :(得分:3)

json.Indent()用于此目的。使用它的示例:

Phone

输出(在Go Playground上尝试):

src := []byte(`{"foo":"bar","x":1}`)

dst := &bytes.Buffer{}
if err := json.Indent(dst, src, "", "  "); err != nil {
    panic(err)
}

fmt.Println(dst.String())

但是缩进仅适用于人眼,它包含相同的信息,并且库不需要缩进的JSON。

另请参阅:Is there a jq wrapper for golang that can produce human readable JSON output?