2015-10-21 58 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