Node.js nodejs中json中的转义双引号

Node.js nodejs中json中的转义双引号,node.js,json,Node.js,Json,我正在从webhook接收一个json对象。我使用JSON.stringify更改为字符串以存储在MySQL表中。稍后我从MySQL表中检索它。我在上面运行JSON.parse。然后使用这些数据在NodeJS中创建一条文本消息。当我在产品标题中使用双引号时,问题就出现了。JSON.parse不喜欢在NodeJS中使用它们 我将“替换为\”。然后运行JSON.parse,它工作得很好,但这是手动完成的。我需要这是在自动-有代码在NodeJS这样做,而不是手动 原始JSON "line_items"

我正在从webhook接收一个json对象。我使用JSON.stringify更改为字符串以存储在MySQL表中。稍后我从MySQL表中检索它。我在上面运行JSON.parse。然后使用这些数据在NodeJS中创建一条文本消息。当我在产品标题中使用双引号时,问题就出现了。JSON.parse不喜欢在NodeJS中使用它们

我将“替换为\”。然后运行JSON.parse,它工作得很好,但这是手动完成的。我需要这是在自动-有代码在NodeJS这样做,而不是手动

原始JSON

"line_items":[{"id":853139563,
"taxable":true,
"title":"“Fuel” Natural Fish Food - "Fuel" Natural Fish Food",
"total_discount":"0.00",
"vendor":"Aqua Design Innovations"}]
所需结果JSON-现在标题中“燃料”一词的周围是“燃料”


可以使用正则表达式查找键值对的所有字符串值,然后用文本替换所有“内部”引号

在代码末尾,我们成功地将字符串解析为JSON对象。有关解释,请参见下面的注释:

let jsonStr='{“行项目”:[{“id”:853139563,“应税”:真,“标题”:“燃料”天然鱼食品-“燃料”天然鱼食品”,“总折扣”:“0.00”,“供应商”:“Aqua Design Innovations”}]
//这与键值对中的所有字符串值匹配

让strVals=jsonStr.match(/(?您的
原始JSON
不是有效的JSON。您使用的webhook提供了无效的JSON。最好的解决方案是让该webhook的维护人员来修复。如果这不是一个选项,您将不得不使用一个乱码来处理无效的JSON,并尝试将其转换为可用的东西。是的,我可能理解无效,但我无法控制它。它来自Shopify,他们无法修复。lol。解决一个原本不应该存在的问题的方法非常复杂。真正的解决方法是修复OP损坏JSON的原因。而不是在JSON已经损坏后修复。OP发布了一个问题,这回答了pr问题。没必要投反对票。OP的问题是一个问题。给他们一个乱七八糟的建议来修复症状而不是根本问题是不好的建议。我不是那个否决你答案的人。尽管如此,作者从一个webhook收到了不好的JSON。我们不知道他是否控制了webhook。如果他控制了,那就请他修复有更好的建议。这本身并不是一个糟糕的答案,只是次优。如果他没有控制权,那么这个答案很好。这不是一个值得否决的理由。好吧,我误读了这个问题。听起来好像OP在生成JSON,但再次阅读后,我发现他们正在重新序列化它并删除它考虑到这一点,我同意他们可能别无选择,但正如我所说,否决票不是我投的。
"line_items":[{"id":853139563,
"taxable":true,
"title":"\"Fuel\" Natural Fish Food - \"Fuel\" Natural Fish Food",
"total_discount":"0.00",
"vendor":"Aqua Design Innovations"}]