我正在尝试使用此格式创建一个广泛的搜索网址?filter[1][field]=brandId&filter[1][operand]=>&filter[1][values][]=firstvalue
,但我似乎无法找到将此(字符串)转换为实际数组的方法(地图/切片或我可以循环的任何内容)
我已经阅读了大量文档并在谷歌上搜索过但无法找到一个好方法。
答案 0 :(得分:0)
如果你的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必须有一个比你现在正在做的查询更好的方法。