我想創建一個這種格式的廣泛的搜索網址?filter[1][field]=brandId&filter[1][operand]=>&filter[1][values][]=firstvalue
,但我似乎無法找到一種方法來將此(字符串)轉換爲實際數組(地圖/切片或任何我可以循環)。解析多維數組格式的查詢字符串到實際數組
我已經閱讀了很多文檔,並在谷歌搜索,但找不到一個好辦法做到這一點。
我想創建一個這種格式的廣泛的搜索網址?filter[1][field]=brandId&filter[1][operand]=>&filter[1][values][]=firstvalue
,但我似乎無法找到一種方法來將此(字符串)轉換爲實際數組(地圖/切片或任何我可以循環)。解析多維數組格式的查詢字符串到實際數組
我已經閱讀了很多文檔,並在谷歌搜索,但找不到一個好辦法做到這一點。
你的範圍可以在諸如解析查詢,所以如果您的filter
將是一個未知長度:
https://play.golang.org/p/NSQ7bnJXef
v, err := url.ParseQuery("filter[1][field]=brandid&filter[1][operand]=>&filter[1][values][]=firstvalue&filter[2][field]=brandid&filter[2][operand]=>&filter[2][values][]=firstvalue")
if err != nil {
fmt.Println(err)
return
}
for id, thing := range v {
switch {
case strings.Contains(id, "field"):
log.Printf("Field Value: %v", thing)
case strings.Contains(id, "values"):
log.Printf("Values Value: %v", thing)
case strings.Contains(id, "operand"):
log.Printf("Operand Value: %v", thing)
}
}
但IMO,必須有比做查詢更好的方法你現在正在做。
我想最終的結果是一個多維地圖,我可以循環並使'brandid == firstvalue' –
您正在尋找['net/url.Values'](https://godoc.org/net/url#Values)。 –
嗯lemme嘗試,但我不認爲它這樣做,但我可能是錯誤的 –
@TimCooper對不起,我沒有看到你的建議如何可以將我的字符串轉換爲數組。 –