为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中解析表单数组

在 Go 中解析表单数组

Go
眼眸繁星 2021-10-25 19:57:10
我需要能够在我的 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 将它解析为单独的字符串 - 而不是我所追求的嵌套层次结构。更具体地说,当我这样做时r.Form["cart"],我希望获得整个嵌套的切片/地图,但这显然不是它的工作原理。我得到的值是[]。使用模式是最好的解决方案,还是有可能完全实现我所追求的?如果那样,你会怎么做?:-)
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

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

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

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

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


查看完整回答
反对 回复 2021-10-25
  • 1 回答
  • 0 关注
  • 288 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信