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

如何在单个REST API POST请求中发送多个JSON对象?

POST多JSON对象/实体模型传递实现方案

前端请求示例

// 需传递的多个实体数组
const entityList = [
  {
    groupid: 1,
    device_id: "dev_001",
    nearbytime: 1695000000,
    distance: 50,
    lat: 31.2304,
    lon: 121.4737,
    user_id: "user_1001"
  },
  {
    groupid: 1,
    device_id: "dev_002",
    nearbytime: 1695000010,
    distance: 72,
    lat: 31.2307,
    lon: 121.4741,
    user_id: "user_1002"
  }
]

// 发送POST请求
fetch('/api/token/batch-add', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(entityList)
})

后端逻辑适配(src -> modelfile改造)

原代码仅支持单条实体插入,改造为批量插入逻辑如下:

const entityList = req.body
const params = []
const placeholder = []

// 遍历实体数组拼接SQL参数和占位符
entityList.forEach(item => {
  placeholder.push('(?, ?, ?, ?, ?, ?, ?)')
  params.push(
    item.device_id,
    item.user_id,
    item.groupid,
    item.nearbytime,
    item.distance,
    item.lat,
    item.lon
  )
})

const sql = `INSERT INTO tb_token (device_id, user_id, groupid, nearbytime, distance, lat, lon) VALUES ${placeholder.join(',')}`

return new Promise ((resolve, reject) => { 
    connection.query (sql, params, (err, response) => {
            if (!err) {
                resolve (response);
            } else {
                reject (err);
            }
        }
    );
});

注意事项

  • 请求头必须携带Content-Type: application/json,否则后端无法正确解析JSON格式请求体
  • 如果需要同时传递公共参数,可以将请求体调整为外层包裹对象的格式:{"operator": "admin", "data": [实体数组]},后端从req.body.data获取实体列表即可
  • 生产环境建议添加参数合法性校验,避免非法值导致SQL执行异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:42:00