如何处理 Json 对象中的双引号字符串?

How to deal with Double Quoted String inside a Json object?

所以我有一个由系统编码的 json 字符串,出于某种原因我无法触摸它。 见下文。

[{"item0":"sometext","item1":"sometext too but i have "quoted string" inside of me"}]

所以现在我的问题是,使用 json_decode($json_array_above); 会给我 NULL 输出,因为它无法转换引用的字符串...

我尝试了一些 preg_replace 代码,但我太菜鸟了,不知道如何替换引用的字符串并引入转义字符,它看起来像这样 \"quoted string\"。说真的,我无法理解这种情况下的 preg_replace。你会在哪里找到 json_encoded 字符串中出现的双引号。请赐教。

我已经尝试过这里提供的其他问题,但我的理解还不够。 另外,请注意,我无法触摸编码 json 对象的 1,因为它是由第 3 方系统提供的..

TIA。

编辑: 感谢那些开导我的人... 所以这是不可能的,我不得不放弃这个并尝试联系系统开发人员更正他们提供的 json 编码字符串,因为这是最好的选择。

Which for a reason I cannot touch

那你就饱了。它坏了,你无法可靠地修复它。

I try some preg_replace code

你不能。您无法知道 " 是否实际上意味着终止字符串,或者意味着 in 字符串中的字符。

停止所有尝试在你这边解决这个问题。最后 发送 你无效 JSON 是问题所在。如果你 "can't touch" 它,请联系并斥责可以修复它的人。您可能会以此为契机告诉他们这就是为什么不手动创建 JSON 或使用字符串连接等创建它的原因。相反,您构建一个结构,然后使用适当的 JSON 序列化程序来创建 JSON,它将(在这种情况下)放入必要的转义符(反斜杠),使其看起来像这样:

[{"item0":"sometext","item1":"sometext too but i have \"quoted string\" inside of me"}]