所以我的系统有一个json编码的字符串,这是我无法触摸的原因。 见下文。
[{"item0":"sometext","item1":"sometext too but i have "quoted string" inside of me"}]
所以现在我的问题是,使用json_decode($json_array_above);
给我NULL输出,因为它无法转换引用的字符串......
我尝试了一些preg_replace代码,但是太过于noob,无法找到如何替换引用的字符串并引入escape char,它看起来像这个\"quoted string\"
。说真的,我无法理解带有这种情况的preg_replace ..在哪里你会发现json_encoded字符串里面出现了双qoute ..请赐教。
我在这里尝试了其他问题,但我的理解还不够。 另外,请注意我不能触及第一方系统提供的json对象的1编码。
TIA。
编辑: 感谢那些开导我的人...... 所以这是不可能的,我不得不放弃这个,并尝试联系系统开发人员来纠正他们提供的json编码字符串,因为它是最好的选择。
答案 0 :(得分:2)
这是我无法触及的原因
然后你被塞满了。它已经坏了,你无法可靠地修复它。
我尝试了一些preg_replace代码
你不能。你无法知道"
是否真的意味着终止字符串,或者意味着字符串中的字符
停止所有尝试解决此问题。最终发送您无效的JSON是问题所在。如果你不能触及"它,联系并指责可以解决问题的人。你可以把它作为一个教他们的机会,这就是为什么不用手工创建JSON,或用字符串连接创建它等等。相反,你构建一个结构,然后使用适当的JSON序列化器来创建JSON ,(在这种情况下)将放入必要的转义(反斜杠),使它看起来像这样:
[{"item0":"sometext","item1":"sometext too but i have \"quoted string\" inside of me"}]