一尘不染

从GoLang的响应中检索了漂亮的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。


阅读 168

收藏
2020-07-02

共1个答案

一尘不染

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。

2020-07-02