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

Express.js中如何返回字典对象而非数组格式的JSON响应

问题原因

你拿到的sqlResults本身就是数组类型,SQL查询接口默认会把所有匹配的结果放在数组里返回,哪怕只命中1条数据,也会用数组包裹,所以直接序列化整个数组自然会带上外层的方括号。

解决方法

只需取出数组中的第一个元素再序列化返回即可,修改后代码如下:

// 取数组第一个元素后再序列化
var ress = JSON.stringify(sqlResults[0])
console.log('response json:' + ress)
res.send(ress)

优化建议

为了避免查询结果为空时取值报错,建议先判断数组是否有值再处理:

if (Array.isArray(sqlResults) && sqlResults.length) {
  res.send(JSON.stringify(sqlResults[0]))
} else {
  // 无匹配结果时按业务需求返回对应内容,示例返回空对象
  res.send(JSON.stringify({}))
}

如果你使用的是Express、Koa这类常用Node服务框架,不需要手动调用JSON.stringify,直接返回JS对象即可,框架会自动完成序列化:

// Express 示例
if (Array.isArray(sqlResults) && sqlResults.length) {
  res.send(sqlResults[0])
} else {
  res.send({})
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:24:01