gpt4 book ai didi

go - 在 Go 中解析表单数组

转载 作者:IT王子 更新时间:2023-10-29 02:30:01 26 4
gpt4 key购买 nike

我需要能够在我的 HTML 表单中做这样的事情:

<form method="POST">
<input type="text" name="cart[items][1][qty]" value="3"/>
<input type="text" name="cart[items][2][qty]" value="7"/>
<input type="submit" value="Update cart"/>
</form>

问题是,如果我打印出 r.Form(当然是在 r.ParseForm() 之后!),就会发现 Go 将它解析为单独的字符串 - 而不是嵌套层次结构之后。

我能够在 http://www.gorillatoolkit.org/pkg/schema 中找到替代方案,但是我很想知道是否有原生/ Vanilla 解决方案,因为如果我不需要它们,我通常会尝试限制外部包。

更具体地说,在上面的示例中,当我执行 r.Form["cart"] 时,我希望获得整个嵌套 slice/映射,但显然不是这样作品。我得到的值是 []。

使用架构是否是解决此问题的最佳解决方案,或者是否有可能实现我所追求的目标?如果那样,你会怎么做? :-)

最佳答案

这个语法实际上在法律上是不标准的。当站点后端由 PHP 提供支持时,有时会使用它,但不是很频繁。

我认为标准 Go 库没有理由支持它。

native 解决方案的存在是因为您拥有实现它的所有工具:字符串操作等。但是,现在没有必要实现它,因为您总是可以发送特定于任务的 JSON。

即使你坚持要创建它,它也不会像在 PHP 中那样简单,因为 Go 是类型化语言而 PHP 不是。并且访问这样的结构并不容易,因为您必须将其实现为 map[string]interface{},这不是正确的 Go 方式(顺便说一句,Go 方式是类型化数据结构).

关于go - 在 Go 中解析表单数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com