将Json Javascript格式转换为PHP可读格式

时间:2016-10-29 19:20:51

标签: javascript php json curl

我有一堆json文件可供读取,并使用PHP将一些信息存储到db。

问题是这些json键没有引号,如:

[{f:{v:11,ib:5,gh:"res",bfr:7,ju:7,ugy:8,ki:"y"...

PHP无法将其识别为json。但是,如果我使用这个json文件并在具有javascript函数“JSON.stringify”的浏览器中运行它,则数据的格式为引号,可以在PHP中使用。

所以我编写了一个脚本来使用javascript解析这些文件,然后将其发布到PHP脚本以将其写入服务器。在浏览器中运行良好但是我不能自动执行此操作,因为curl不运行javascript !!!

无论如何将json格式(不带引号)转换为PHP可读格式?我试过this建议...正则表达式选项不起作用,我不知道如何使用PEAR,即使我的服务器有PEAR版本:1.10.1和PHP版本:5.4.45

1 个答案:

答案 0 :(得分:1)

这是我解决您问题的方法。是的,它是正则表达式,但它确实有效。

$text = preg_replace(["/\\\\'/", '/("(.*?)"|(\w+))(\s*:\s*(".*?"|.))/s'], ["'", '"$2$3"$4'], $text);
$text = json_decode($text);

$ text - 格式错误的json

对于最后的评论,这应该有效:

$text = preg_replace(["/\\\\'/", '/("(.*?)"|(\w+))(\s*:\s*(".*?"|.))/s', '/((:\s*)(0\d+))/'], ["'", '"$2$3"$4', '$2"$3"'], $text);