簡體   English   中英

如何在golang中從查詢中獲取數組鍵的值

[英]How to get value of array key from query in golang

我有這個問題

site.com/?status[0]=1&status[1]=2&status[1]=3&name=John

我想得到狀態鍵的所有值

1,2,3

我試過這樣的事

for _, status:= range r.URL.Query()["status"] {
    fmt.Println(status)
}

但它僅在查詢沒有數組鍵時有效: site.com/?status=1&status=2&status=3&name=John

一種方法是循環遍歷可能的值並隨時附加到切片:

r.ParseForm()  // parses request body and query and stores result in r.Form
var a []string
for i := 0; ; i++ {
    key := fmt.Sprintf("status[%d]", i)
    values := r.Form[key] // form values are a []string
    if len(values) == 0 {
        // no more values
        break
    }
    a = append(a, values[i])
    i++
}

如果您可以控制查詢字符串,則使用以下格式:

 site.com/?status=1&status=2&status=3&name=John

並使用以下方式獲取狀態值

 r.ParseForm()
 a := r.Form["status"]  // a is []string{"1", "2", "3"}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM