Closed. This question does not meet
Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为
on-topic用于堆栈溢出。
3个月前关闭。
Improve this question
给定这样的Go结构:
type Color struct {
Red int32 `url:"red"`
Green int32 `url:"green"`
Blue int32 `url:"blue"`
Alpha int32 `url:"alpha,omitempty"`
}
能够将其转换为URL查询,就像这样:
c := Color{
Red: 255,
Green: 127,
}
v, err := MarshalURLQuery(c)
fmt.Printf("%s", string(b))
其中v是
url.Values
实例,产生“
red=255&green=127&blue=0
”。当然,Go必须已经提供了类似的东西。我如何在Go中做到这一点而又不浪费时间?
是的,gorilla/schema,使用encoder
:
package main
import (
"fmt"
"log"
"net/url"
"github.com/gorilla/schema"
)
type Person struct {
Name string `schema:"name"`
Lastname string `schema:"lastname"`
}
func main() {
person := &Person{Name: "John", Lastname: "Doe"}
encoder := schema.NewEncoder()
v2 := url.Values{}
if err := encoder.Encode(person, v2); err != nil {
log.Fatal(err)
}
fmt.Println(v2.Encode())
}
输出:
lastname=Doe&name=John
https://play.golang.org/p/0_7879f5BES
我是一名优秀的程序员,十分优秀!