2015-10-21 63 views
-1

我正在使用POSTMAN处理go lang中的POST请求。我希望以结构格式显示响应(JSON数据的结构)。 用于显示正常的字符串中,我使用rw.Write([]byte(fmt.Sprintf("Hello, %s!", t.Name)))如何在Http响应中打印结构lang

应该怎么办响应身体,以显示STRUCT?(使用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}}

这是我想在邮差回复中完全展示。

感谢提前:)

+0

你有种含蓄地回答了自己的问题,但我会尽量做到更加清晰的答案... –

回答

0

不知怎的,你已经间接地回答了你的问题,但只是不知道这件事。

你提到了这个例子,它有你正在寻找的功能。 fmt.Sprintf返回一个格式化的字符串,而不是您已经使用的打印到标准输出的那个,fmt.Printf

rw.Write([]字节(fmt.Sprintf( “你好,%S!”,t.Name)))

所以不是fmt.Printf("%+v\n", m),你可以使用类似下面的使用fmt.Sprintf

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

其他溶液作为@JimB建议是使用fmt.Fprintf直接服用io.Writer作为第一个参数和格式字符串之后。

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

非常感谢@Will下您的输入。 现在结构打印出我想要的,但它前面有一个'&'字符。 (就好像它是一个指针)。 输出结果为:&{ID:1姓名:John Smith地址:123 Main St城市:旧金山州立大学:邮政编码:94113经纬度:{Latitude:37.7917618经度:-122.3943405}} –

+1

我认为那是因为发生了'm'作为一个指针,所以你可能可以执行'fmt.Sprintf(“%+ v \ n”,* m)'来取消引用'm'。 –

+1

无需额外的字符串转换,'fmt.Fprintf(rw,“%+ v \ n”,m)' – JimB