You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中POST传递对象数组解析异常,求解决方法?

问题原因与解决方案

这问题我之前也踩过坑,其实是urlencoded表单数据的解析规则在搞鬼,咱们一步步说清楚:

为什么会出现不符合预期的结果?

你用的students[][first]这种命名方式,没有给每个学生分配明确的索引标识。body-parser的urlencoded解析器会把所有同名的first、last、age字段分别收集成数组,然后统一塞到students数组的第一个对象里——它没法判断哪些输入框属于同一个学生,只能按字段名来归类聚合。

怎么改成你期望的对象数组格式?

给每个学生的字段加上相同的索引就行,明确告诉解析器哪些字段是一组的:

<!-- first student -->
<input type="text" name="students[0][first]">
<input type="text" name="students[0][last]">
<input type="text" name="students[0][age]">

<!-- second student -->
<input type="text" name="students[1][first]">
<input type="text" name="students[1][last]">
<input type="text" name="students[1][age]">

你已经配置了bodyParser.urlencoded({extended: true}),这样修改后就能正确解析出你想要的格式:

[
  { first: 'Fname1', last: 'Lname1', age: 'Age1'},
  { first: 'Fname2', last: 'Lname2', age: 'Age2'}
]

简单来说,就是要给每个“学生对象”一个明确的位置标记,解析器才能把对应字段正确分组~

内容的提问来源于stack exchange,提问作者Phelipe Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:47:18