2015-10-19 2 views
-2

Когда вы создаете funcHandler в Голанге и используете Gorilla Mux, я знаю, что вы можете получить доступ к определенной входной переменной, вызвав Mux.Vars. Тем не менее, я не уверен, как это работает, когда у вас есть данные, хранящиеся в формате JSON, и часть из этого связана с тем, что я не уверен, как работает Mux.Vars(). Итак, я хотел бы знать, как перечислять все переменные, хранящиеся в Mux.Vars(), когда вы вводите funcHandler и как разбираете JSON, хранящийся в URL-адресе (например,/data? Name = "bill" & value = "red ", где я хотел бы найти значение ключей имени и значения).Как перечислить все переменные в Gorilla Mux?

+3

Где в '/ data? Name =" bill "& value =" red "' должен ли скрываться какой-нибудь JSON? Что было бы неправильно при простом анализе URL? – Volker

+1

'mux.Vars' - это когда вы используете привязку параметров URL-адреса gorilla/mux. Если вы хотите проанализировать параметры строки запроса, вы можете просто использовать https://golang.org/pkg/net/http/#Request.FormValue или 'request.URL' с помощью' net/url' для их анализа. – elithrar

ответ

0

Для список всех горилл Мульт:

for k, v := range mux.Vars(request) { 
    log.Printf("key=%v, value=%v", k, v) 
} 

Vars функция возвращает рамочную помощь в map, for range вы читаете все пункты, как я покажу вам.
Но я думаю, что ваш вопрос немного по-другому, если вы хотите прочитать данные JSON или другие данные, отправляемые с запросом, вам необходимо прочитать запрос Body (req.Body). Обратите внимание, что Request Body является интерфейсом Reader, а не строкой. Пример, если вы ожидаете ввода в формате JSON:
Handling JSON Post Request in Go

Смежные вопросы