我有一个用例,我们在x-www-form-urlencoded
体中获得嵌套的键值,如下所示name=abc&age=12¬es[key1]=value1¬es[key2]=value2
我试过url.ParseQuery("name=abc&age=12¬es\[key1\]=value1¬es\[key2\]=value2")
但它给
{
"name": "abc",
"age": 12,
"notes[key1]": "value1",
"notes[key2]": "value2"
}
我怎样才能得到这个值在下面的JSON格式以上的身体
{
"name": "abc",
"age": 12,
"notes": {
"key1": "value1",
"key2": "value2"
}
}
注解可能采用3级嵌套格式
我试过url.ParseQuery
和r.Form
,但它们都给了notes[key1]
和notes[key2]
。
1条答案
按热度按时间lyfkaqu11#
要使用这种类型的查询字符串参数名称解组嵌套的键值,可以使用Rack的查询字符串解析器的端口
derekstavis/go-qs
。这将返回一个
map[string]interface{}
,其中包含嵌套的键值,如下所示。值得注意的是,
age
的值是作为字符串返回的,但是,url.ParseQuery
也是如此。如果需要将其封送为整数,则可以对包进行分叉和修改。Go Playground上有一个完整的示例,代码如下:
Go Playground URL:https://go.dev/play/p/Px7uZWRNs5V