HTML表单JSON数组输出未按预期格式设置

时间:2018-12-04 03:50:44

标签: javascript php json forms express

我一直在制作有关电影票预订的项目,每张票都有特定的类型。我以前是用PHP制作的,并且正在生成一个表单,以使用以下选择输入来为每个座位选择机票类型:

<select name="seats[D3]">

然后,我可以遍历PHP中的“ seats”数组,例如,seat [[C3“]包含值“ Student”,并且运行良好。

但是,现在我尝试在服务器端使用JavaScript而不是PHP,因此,获得的POST请求正文不再是将座位号与其类型链接的字典。相反,我得到这样的东西:

{"seats[E1]":"Adult","seats[D2]":"StudentSenior"}

您可以清楚地看到我没有字典结构,方括号表示法无效,并且我只有自变量,而我想得到这样的东西:

{"seats":["E1":"Adult", "D2":"StudentSenior"]}

我知道我可以读取每个条目并检查它是否以“ seats [”开头,然后获取其后的值,但是我感到奇怪的是PHP可以使用此表单请求来构建数组,而javascript无法。 ..

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您应该将身体分析器urlencoded助手设置为extended模式...

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true })) //  note "true"

这会将正文解析器设置为使用qs库,该库能够将方括号中的字符串解析为对象。