如何在 go lang 的 Http Response 中打印一个 Struct

How to print a Struct in the Http Response in go lang

我正在使用 POSTMAN 在 go lang 中处理 POST 请求。我希望以结构格式(json 数据的结构)显示响应。 为了显示普通字符串,我使用 rw.Write([]byte(fmt.Sprintf("Hello, %s!", t.Name)))

如何在响应体中显示结构?(使用rw.write方法)

fmt.Printf("%+v\n", m) 输出到 {ID:1 Name:John Smith Address:123 Main St City:San Francisco State:CA Zip:94113 Coordinate:{Latitude:37.7917618 Longitude:-122.3943405}}

这就是我想要在 Postman 响应中准确显示的内容。

提前致谢:)

您以某种方式间接回答了您的问题,但您自己并不知道。

您提到了这个示例,它具有您要查找的功能。 fmt.Sprintf returns 一个格式化的字符串而不是你已经使用的打印到标准输出的字符串,fmt.Printf

rw.Write([]byte(fmt.Sprintf("Hello, %s!", t.Name)))

因此,您可以使用类似下面的 fmt.Sprintf:

而不是 fmt.Printf("%+v\n", m)
structString := fmt.Sprintf("%+v\n", m)
rw.Write([]byte(structString))

@JimB 建议的另一种解决方案是直接使用 fmt.Fprintf,将 io.Writer 作为其第一个参数,然后是格式字符串。

fmt.Fprintf(rw, "%+v\n", *m)