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

NodeJS中json_agg查询结果与pgAdmin不一致问题求助

PostgreSQL查询在Node.js中返回的JSON显示为[Object]的解决办法

问题本质

你看到的[Object]只是Node.js控制台打印时的简化输出,数据本身是完整且正常的。Node.js默认打印嵌套对象/数组时,为了避免输出内容过长,会将深层结构简化为[Object],并非数据损坏。

验证完整数据结构

把代码里的console.log(data)替换成下面的写法,就能看到和pgAdmin一致的完整JSON结构:

console.log(JSON.stringify(data, null, 2))

另外你代码里的res.json(data)已经正确将完整数据序列化为JSON返回给前端了,前端接收到的是正常的嵌套结构,只是控制台打印没展开而已。

额外修正:查询语句的逻辑bug

顺便提一句,你的SQL查询里有个小错误:interval_end的case分支里误用了interval_start字段,导致返回的end时间和start时间一致,建议修正:

select locationid, json_agg(json_build_object('dayofweek',dayofweek, 
   'start', case when interval_start is NULL then '0' else to_char(interval_start, 'HH12:MI:SS') end, 
   'interval_end', case when interval_end is NULL then '0' else to_char(interval_end, 'HH12:MI:SS') end)) as open_hours 
from availability 
group by locationid

控制台直接展开显示的方法

如果想让控制台直接展开所有嵌套结构(不用转JSON字符串),可以用Node.js的util.inspect工具:

const util = require('util');
console.log(util.inspect(data, { depth: null, colors: true }));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:35:16