如何从 api 响应中删除不需要的字符
Posted
技术标签:
【中文标题】如何从 api 响应中删除不需要的字符【英文标题】:How to remove unwated characters from api response 【发布时间】:2022-01-12 18:41:34 【问题描述】:我正在 API 响应中的 NodeJS 中创建 api 我得到 /
这个字符
以下是我的 api 响应:
static async getAdminOrders(logId, callback)
logger(logId, `Getting all orders of the stylist $logId`);
const queryStr = 'SELECT order_details FROM stylist_order';
Util.executeQuery(queryStr,logId).then((result) =>
callback(false, result || [], Util.statusCodes.SUCCESS);
var str = JSON.stringify(result);
// Remove \ from the string
var str1 = str.replace(/\\/g,'');
// Convert updated string back to object
var newObj = JSON.parse(str1);
console.log(newObj);
).catch((error) =>
logger(logId, error);
callback(true, message: 'Failed to fetch order detials' , Util.statusCodes.INTERNAL_SERVER_ERROR);
);
在控制台中删除不需要的字符后,它不会返回对象,但是当我执行console.log(str1)
时,它的返回字符串没有/
。问题是 newObj
未显示。
有人告诉我我做错了什么。
【问题讨论】:
您的 API JSON.stringifying 数据两次。修复你的后端,而不是在前端乱搞。 为什么需要替换字符?它只是逃避引号。只需调用 JSON.parse 而无需尝试替换它们。 请不要向 *** 发送相同问题的垃圾邮件以获得更多关注。 ***.com/questions/70270363/… 【参考方案1】:反斜杠转义了"
字符,因此它们并不是真正不需要的。当您删除它们时,您可能会损坏有效负载,因为JSON.parse()
无法再正确读取字符串。
我会尝试像这样解析数据字符串本身:
static async getAdminOrders(logId, callback)
logger(logId, `Getting all orders of the stylist $logId`);
const queryStr = 'SELECT order_details FROM stylist_order';
Util.executeQuery(queryStr,logId).then((result) =>
callback(false, result || [], Util.statusCodes.SUCCESS);
for(let i = 0; i < result.data; i++)
result.data[i].order_details = JSON.parse(result.data[i].order_details)
console.log(result);
).catch((error) =>
logger(logId, error);
callback(true, message: 'Failed to fetch order detials' , Util.statusCodes.INTERNAL_SERVER_ERROR);
);
【讨论】:
特殊字符已被删除。 这是我得到的响应 `RowDataPacket order_details: '"id": 4180207272112, "name": "#1190"` 这是什么RowDataPacket
响应
好像是这样的:***.com/a/31229034/9224578 就像普通对象一样访问它。以上是关于如何从 api 响应中删除不需要的字符的主要内容,如果未能解决你的问题,请参考以下文章
如何从 WEB API 请求和响应 XML 中删除命名空间?