Как напечатать Struct в Http Response в Go Lang

Я использую POSTMAN для обработки запросов POST в go lang. Я хочу отобразить ответ в формате структуры (структура данных JSON). Для отображения нормальной строки я использую rw.Write([]byte(fmt.Sprintf("Hello, %s!", t.Name)))

Что я должен сделать, чтобы отобразить 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}}

Это то, что я хочу отображать именно в ответе Почтальона.

Заранее спасибо:)

1 ответ

Решение

Каким-то образом вы косвенно ответили на свой вопрос, но просто не знали об этом.

Вы упомянули этот пример, который имеет функцию, которую вы ищете. fmt.Sprintf возвращает отформатированную строку вместо той, которую вы уже использовали, которая печатает для стандартного вывода, fmt.Printf,

rw.Write([]byte(fmt.Sprintf("Hello, %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)
Другие вопросы по тегам