【问题标题】:Regex: how to deal with brackets and back slashes? Example: make "[{\ into [{正则表达式:如何处理括号和反斜杠?示例:将“[{\ 变为 [{
【发布时间】:2026-02-03 19:30:02
【问题描述】:

我正在将 csv 文件转换为 JSON,转换器在行首添加 ",并在引号中添加 \

所以,如果我的 CSV 文件有一个类似的数组

"items": [{"name":"item 1"...

转换器生成的 JSON 是:

"items": "[{\"name\":\"item 1\"...

我需要 JSON 看起来像原始 CSV 条目。

那么,如何将 "[{ 更改为 [{

注意:我不能随处删除引号,因为它们在某些地方是正确的。所以我只需要在它们后面跟着这些特定字符时删除引号,所以只删除"[{

我如何在它们出现的任何地方删除\

编辑 一些 cmets 和答案提到也许有更好的方法将 CSV 转换为 JSON 文件。就我而言,我在 excel 中有数据,最终需要 Lambda 函数读取,所以我希望我需要一种将 excel 转换为 JSON 的方法。我已经发布了一个单独的问题,寻求有关该主题的帮助here

【问题讨论】:

  • 您多次转换为 JSON,因此它转义了嵌入 JSON 中的引号。你可能不应该那样做。显示您的代码,我们将解释如何修复它。
  • 转换本身没有在我的代码中完成。我有 CSV 格式的数据,需要将其转换为 JSON 文件。我正在使用在线转换器进行此操作。一旦我有了 JSON 文件,我的代码就会解析它。所以问题是如何解析 JSON 以删除我在问题中提到的内容。

标签: javascript regex


【解决方案1】:

首先你应该尝试生成正确的json格式,这样你就完全不用经历这个问题了。

但是,如果您无法控制所获取的 json 数据的输出,则可以使用此 regexp 删除 \" 部分:

your_json_var.toString().replace(/\"/g,'');

其中your_json_var 包含返回的数据。

your_json_var = '"items": "[{\"name\":\"item 1\"...';

var new_var = your_json_var.toString().replace(/\"/g,'');

console.log(new_var);

【讨论】:

  • 就我而言,我有一个 CSV 文件,我需要我的代码能够将其读取为 JSON。我发现的最简单的解决方案是使用在线转换器将 CSV 文件转换为 JSON 文件。我在上面提到的项目是由该转换器生成的 JSON。
  • @9gt53wS 我已经为您添加了代码示例,希望对您有所帮助。但是我仍然认为您应该在导入时为正确的数据类型添加逻辑
  • 谢谢。我将测试代码。为了清楚起见,运行转换器后,我手头有 JSON 文件,然后我的代码必须运行它。为了更正格式,我计划像我们讨论的那样使用正则表达式。这与“在导入时添加逻辑”有何不同?
  • 我们应该尽量减少使用正则表达式,主要是为了性能。不过测试一下,看看它是否符合目的。但是,您应该将用于 csv 的代码发布到 json 以及 csv 文件的确切起始行,以便我们可以帮助您
  • 我明白了。性能在这里实际上非常重要,所以如果正则表达式对此不好,我会找到不同的方法。
【解决方案2】:

你可以这样做 让 stringJson=JSON.stringify(myjson) 让 clearJson = JSON.parse(stringJson.replace(/\"[{/g, '[{').replace(/\/g,'')

【讨论】:

  • 不起作用。我得到“未终止的正则表达式文字”。我还收到了有关各个地方的语法错误的注释。
最近更新 更多