給定這樣的 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 中做到這一點?
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
是的,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
- 1 回答
- 0 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消