所以我有这种形式:

<form method="POST" action="/parse">
    <div>
        <input name="photo[0]" value="Hey I'm photo zero!" />
    </div>
    <div>
        <input name="photo[1]" value="Photo one here!" />
    </div>
    <div>
        <input name="photo[2]" value="Awh I'm photo 2 but I'm the third photo..." />
    </div>
    <div>
        <button type="submit">submit</button>
    </div>
</form>

出现在Go中,net/http库允许您通过表单中的字符串键一次查询一次表单数据:
r.PostFormValue("photo[0]")

在Go中有没有简单的方法可以直接将这种形式解析为 slice ?

也就是说,能够像这样访问照片的元素:
photos := r.PostFormValue("photo");
log.Println(photos[1]);

或任何其他建议,除了使用字符串munging之外,还可以在Golang的表单发布数据中正确访问``类似数组的''数据结构...

最佳答案

不要在名称中添加数组索引,对所有输入都使用相同的名称。
http库会将具有相同名称的字段解析为 slice 。

<form method="POST" action="/parse">
    <div>
        <input name="photo" value="Hey I'm photo zero!" />
    </div>
    <div>
        <input name="photo" value="Photo one here!" />
    </div>
    <div>
        <input name="photo" value="Awh I'm photo 2 but I'm the third photo..." />
    </div>
    <div>
        <button type="submit">submit</button>
    </div>
</form>

10-06 14:20