我的目標是從資料庫中獲取一些過濾記錄。過濾基于一個依賴于另一個結構的結構:
type Group struct {
ID primitive.ObjectID
Name string
}
type Role struct {
ID primitive.ObjectID
Name string
Description string
Groups []*group.Group
}
我從 URL 查詢引數創建 Role 結構的物件:
var roleWP Role
if r.URL.Query().Has("name") {
name := r.URL.Query().Get("name")
roleWP.Name = name
}
if r.URL.Query().Has("description") {
description := r.URL.Query().Get("description")
roleWP.Description = description
}
if r.URL.Query().Has("groups") {
//How would look groups parameter?
}
struct 的填充name和description欄位Role非常簡單。整個 url 將是:
myhost/roles?name=rolename&description=roledescription
但是如果我想為Groupstruct 傳遞資料,那么 url 會怎樣呢?是否可以在查詢引數中將資料作為 json 物件傳遞?另外,我想提一下這個groups欄位Role是一個陣列。我理想的虛擬網址如下所示:myhost/roles?name=rolename&description=roledescription&groups={name:groupname1}&groups={name:groupname2}
uj5u.com熱心網友回復:
遍歷組,拆分:,創建組并附加到切片:
roleWP := Role{
Name: r.FormValue("name"),
Description: r.FormValue("description"),
}
for _, g := range r.Form["groups"] {
g = strings.TrimPrefix(g, "{")
g = strings.TrimSuffix(g, "}")
i := strings.Index(g, ":")
if i < 0 {
// handle error
}
roleWP.Groups = append(roleWP.Groups, &Group{g[:i], g[i 1:]})
}
以下是如何使用 JSON 而不是 OP 的理想格式:
roleWP := Role{
Name: r.FormValue("name"),
Description: r.FormValue("description"),
}
for _, s := range r.Form["groups"] {
var g Group
err := json.Unmarshal([]byte(s), &v)
if err != nil {
// handle error
}
roleWP.Groups = append(roleWP.Groups, &g)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/452969.html
上一篇:為什么從nodejs服務器重定向僅適用于第一個請求?
下一篇:關閉網路服務器連接,瀏覽器行為
