英文:
How to iterate over query params in Golang
问题
我正在使用Golang中的Fiber包来处理HTTP请求,并希望找到请求中的所有查询参数。
GET http://example.com/shoes?order=desc&brand=nike&lang=english
我想要遍历查询参数,并找到类似以下的内容:
for k, v := range c.AllQueries() {
reqObj[k] = v[0]
}
期望的输出:
"order" : "desc"
"brand" : "nike"
"lang" : "english"
英文:
I am using Fiber package in Golang to handle the httprequests and want to find all the query params present in request
GET http://example.com/shoes?order=desc&brand=nike&lang=english
I want to iterate over query params and looking for something like this
for k, v := range c.AllQueries() {
reqObj[k] = v[0]
}
Expected output:
"order" : "desc"
"brand" : "nike"
"lang" : "english"
答案1
得分: 2
这里是AllParams
实现的链接:链接。我们可以看到这个方法返回一个map[string]string
类型的查询参数。所以AllParams
就是你需要的。
params := c.AllParams()
for k, v := range params {
// 使用这些值做一些操作
}
编辑:
Go-fiber在底层使用了fasthttp。你可以查看这个方法块,并按照他们的方式迭代fasthttp.QueryArgs()
。
c.fasthttp.QueryArgs().VisitAll(func(key, val []byte) {
// 在这里实现你想要对键值对做的操作
})
英文:
Here is the link of AllParams
implementation. We can see this method returns a map[string]string
of query params. So AllParams
is what you need.
params := c.AllParams()
for k, v := range params {
// do something with the values
}
Edit:
Go-fiber uses fasthttp under the hood. You can look into this method block and iterate the fasthttp.QueryArgs()
the way they are doing.
c.fasthttp.QueryArgs().VisitAll(func(key, val []byte) {
// implement what you want to do with the key values here
})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论