如何在javascript中反转单引号和双引号以使其成为用于解析的有效json

问题描述

我有一个这样的 API 响应:

[{'name': 'men','slug': 'men'},{'name': 'women','slug': 'women'}]

当我将它字符串化时它变成

const raw = JSON.stringify(resp)
"[{'name': 'men','slug': 'women'}]"

我想要这种格式,

'[{"name": "men","slug": "men"},{"name": "women","slug": "women"}]'

我尝试使用replaceAll和replace函数,但无法正确转换,谁能帮我解决这个问题?

解决方法

我建议修复 API 以返回有效的 JSON。

其他隔离:

  1. 快速但危险:使用 eval() 函数,即:

     eval('var data = ' + resp)
     const raw = JSON.stringify(data)
    
  2. 更安全但乏味:编写自己的解析器来解析这个几乎是 JSON 的 API 响应。