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

ExpressJS返回JSON响应时Set对象显示为空的问题求助

Express返回Set对象变为空对象的原因

你遇到的问题核心在于:Express的res.json()方法依赖原生的JSON.stringify()做数据序列化,但JSON.stringify无法识别并正确序列化原生Set对象。

Set是ES6新增的集合类型,它的内部属性和结构不符合JSON的序列化规则,当JSON.stringify处理Set时,只会输出一个空对象{}——这就是为什么控制台能正常打印Set(控制台会特殊处理Set的展示逻辑),但POSTMAN收到的却是空对象。

解决办法

把Set转换成JSON支持的数组格式再返回即可,两种常用方式:

  1. 使用Array.from():
res.status(200).json({ my_set: Array.from(mySet1) });
  1. 使用扩展运算符:
res.status(200).json({ my_set: [...mySet1] });

这样处理后,POSTMAN就能收到正确的响应:

{
    "my_set": [1]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:29