【问题标题】:How to remove unwated characters from api response如何从 api 响应中删除不需要的字符
【发布时间】: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 而无需尝试替换它们。
  • 请不要向 StackOverflow 发送相同问题的垃圾邮件以获得更多关注。 stackoverflow.com/questions/70270363/…

标签: javascript node.js


【解决方案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 响应
  • 好像是这样的:stackoverflow.com/a/31229034/9224578 就像普通对象一样访问它。
猜你喜欢
  • 2013-04-17
  • 2015-11-05
  • 2017-06-04
  • 1970-01-01
  • 2018-12-22
  • 2021-11-16
  • 2014-09-05
  • 2016-02-01
相关资源
最近更新 更多