转义已编码的json字符串

时间:2014-09-09 17:01:00

标签: javascript php json encode

目前我必须使用一些json字符串,其中引号未正确转义。字符串看起来像这样

{ "foo" : "hello my name is "michael"" }

JS / PHP中是否有任何现实的机会逃避值中的引号而不手动执行它以便我可以解析字符串?

1 个答案:

答案 0 :(得分:0)

你没有提供太多的工作,但看起来你正在以这种方式生成json:

$userInput = $_GET['userInput'];
$json = '{ "foo" : "' . $userInput . '" }';

这很糟糕。这是安全生成json的合适方法:

$outputData = array(
  "foo" => $_GET['userInput']
);
$json = json_encode($outputData);

请参阅此处的参考资料:http://php.net/manual/en/function.json-encode.php

关于你原来的问题,JS / PHP有没有逃避引号的现实机会?不。假设字符串的“实际值”是包含引号的一系列段落,您知道,就像报价的延续一样,每个段落都以"开头。不,那是不能修复的。

您需要修复json的。如果您从某些第三方服务获取该json字符串,则需要告诉他们他们发送给您的字符串无效json