如何在HTML/Node.js中隐藏JSON键名,格式化API返回结果
问题解决方法
你当前代码的核心问题是:API返回的body本身就是JSON格式的字符串,你却用JSON.stringify(body)再次转义,导致输出出现冗余引号和完整键值对。要实现目标格式,需要先解析body为JS对象,再提取对应值处理后拼接。
修改后的完整回调函数
function callback(error, response, body) { if (!error && response.statusCode == 200) { // 把API返回的JSON字符串解析为可操作的JS对象 const cardData = JSON.parse(body); // 处理日期:截取年份后两位+月份(比如2027-01-24T... → 27-01) const formattedDate = cardData.date.slice(2, 7); // 按需求顺序提取所有需要的值 const targetValues = [ cardData.type, formattedDate, cardData.fullName, cardData.cardNumber, cardData.cvv ]; // 拼接成你想要的格式 const finalOutput = `{${targetValues.join(', ')}}`; // 输出到页面元素 document.getElementById("output").textContent = finalOutput; } }
关键细节说明
- JSON解析:
JSON.parse(body)将字符串转成JS对象,才能直接获取type、date等字段的值。 - 日期处理:利用字符串
slice方法截取指定位置的字符,快速得到27-01格式的日期。 - 值拼接:把需要的值存入数组,用
join(', ')一键完成逗号分隔的拼接,最后包裹大括号。 - 安全输出:用
textContent代替innerHTML,避免不必要的DOM解析风险(即使是静态数据,也建议养成这个习惯)。
注:你贴出的API返回结果末尾有个多余的},应该是粘贴失误,实际API返回的必须是合法JSON,否则JSON.parse会报错,若确有格式问题,需先修正字符串再解析。
内容的提问来源于stack exchange,提问作者user19055220
相关产品推荐
相关产品推荐

