我从和端点检索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。
有json.Indent()这个目的。使用它的示例:
json.Indent()
src := []byte(`{"foo":"bar","x":1}`) dst := &bytes.Buffer{} if err := json.Indent(dst, src, "", " "); err != nil { panic(err) } fmt.Println(dst.String())
输出(在Go Playground上尝试):
{ "foo": "bar", "x": 1 }
但是缩进仅适用于人眼,它包含相同的信息,并且库不需要缩进的JSON。