如何提取JSON对象的message值并通过join拼接为字符串?
提取JSON对象错误消息并拼接的解决方案
问题场景
你从函数拿到的JSON输出是:
{"0":{"error":"ERROR_SPECIAL_CHAR","message":"Missing a special character"},"1":{"error":"ERROR_CHAR_UPPERCASE","message":"Must contain at least one uppercase letter"}}
想要得到的结果是:
"Missing a special character, Must contain at least one uppercase letter"
但用Array.isArray(err)? err.join(',')处理时,得到了[object Object],[object Object],核心问题是你搞错了数据类型——拿到的是对象,不是数组。
解决代码
直接按下面的逻辑处理即可:
// 1. 先把JSON字符串解析成JS对象(如果还没解析的话) const errObj = JSON.parse('{"0":{"error":"ERROR_SPECIAL_CHAR","message":"Missing a special character"},"1":{"error":"ERROR_CHAR_UPPERCASE","message":"Must contain at least one uppercase letter"}}'); // 2. 提取所有错误消息,再拼接成目标格式 const result = `"${Object.values(errObj).map(item => item.message).join(', ')}"`; console.log(result);
原因说明
- 你的
err是带数字键的普通对象,不是数组,Array.isArray(err)会返回false,根本走不到join的逻辑; - 就算把对象转成数组(比如
Object.values(err)),直接join会把每个对象默认转成[object Object],必须先提取里面的message属性再做拼接。
内容的提问来源于stack exchange,提问作者pavan kumar
相关产品推荐
相关产品推荐

