javascript - json stringify删除括号外的文本
问题描述
我正在使用firebase功能。像这样的代码。
let transaction_id;
let signature_key;
switch (req.get('Content-Type')) {
case 'application/json':
({transaction_id} = req.body);
({signature_key} = req.body);
break;
case 'application/octet-stream':
transaction_id = req.body.toString();
signature_key = req.body.toString();
break;
case 'text/plain':
transaction_id = req.body;
signature_key = req.body;
break;
case 'application/x-www-form-urlencoded':
({transaction_id} = req.body);
({signature_key} = req.body);
break;
}
console.log(transaction_id);
它仍然显示未定义。控制台日志 req.body 未显示 json 响应。 我尝试 JSON.Stringify。
Transaction status is pending {"transaction_id":"1c133665-d73d-45b6-b183-8d263644736b","signature_key":"TzbgFmtPe5qLu1MPcId3MoRcyU%2FBRWHJ6AdQQdLHN6ABy0SpB56F4jYUPFLMemPYL8KhruaQvWWYpAUEXJhcnpQ0Qn%2FHbE0GRwx1Em3Hc%2FWi1mofPUafALccvUmRR3QE","status":"OK","amount":"1020000.00","shipping_address":{},"payment_type":"30_days","transaction_status":"pending","transaction_time":1593094347,"order_id":"P-2020237834543138"}
当我执行 JSON.stringify 时,它会显示在数据上方。如何删除大括号 {} 外的文本,以便我可以转换为 json 以获取 transaction_id 和 signature_key 的值?或者如何直接从 JSON.stringify 输出中获取数据?
解决方案
如果您想在外大括号之前和之后省略数据,那么我建议运行正则表达式
str.replace(/^[^{]*(.*)[^}]*$/,'$1');
结果可以放入 JSON.prase 函数中。
概括:
let trx_id = JSON.parse(result.replace(/^[^{]*(.*)[^}]*$/,'$1')).transaction_id;
推荐阅读
- javascript - React - 使用对象内部的对象调用函数
- android - Android Studio Database Inspector 始终将数据库显示为“已关闭”
- javascript - 只有一个使用 react-grid-layout 的 highcharts 可以调整大小
- influxdb - 为什么 InfluxDB v2 配置文件不起作用?
- javascript - 在谷歌标签管理器中使用 Javascript Shopify 产品变体
- fonts - 如何在 Jupyter Lab 中更改输出单元格的字体
- java - 裁剪图像与形状
- javascript - 组合数组中的不同对象
- php - 如何从 2 个表中获取匹配的行
- c++ - 将消息从 C++ Windows 桌面应用程序发送到 DLL