2012-03-29 59 views
0

像往常一样我正在与我搞砸了数据库,我发现有一些fuxked在数据库中的JSON字符串...一些JSON字符串缺少周围的双引号键和/或值。JSON:修复搞砸JSON字符串

我正在考虑编写一个PHP脚本来解决这个问题,你们有什么建议可以检测缺失的引号并自动添加它们吗?或者没有这种方便的方式...

谢谢智能社区!

+1

[PEARs JSON class](http://pear.php.net/package/Services_JSON)可以像upgradephp一样解析这些Javascript表达式;尽管不是为了价值。以前关于这个话题的问题已经涵盖了转换方法。 – mario 2012-03-29 22:15:51

+0

@mario感谢您的信息,但它处理这种缺少的报价情况?问题是,一些JSON字符串形式不正确...反正我会搜索其他类似的问题,看看我找到了什么...... – 2012-03-29 22:43:14

+1

是的,它处理丢失的关键引号。但是,不,完全乱码的JSON无法重建。你需要一个resilent正则表达式。 (=没有太多的努力) – mario 2012-03-29 22:45:50

回答

1

您可以使用json_decodejson_last_error来检测字符串中是否有错误。然后json_encode将有效的json值写回去。

+0

感谢您的回复,但是我不明白json_last_error会如何帮助我。我知道会有一个错误,但修复它是主要问题。 – 2012-03-29 22:38:31

+0

嗯,我已经解决了这个问题,幸运的是包含错误情况的数量,所以我可以做一个非常具体的检测...感谢您的回复,我会接受您的答案欣赏您的帮助:) – 2012-04-02 17:03:38

+0

谢谢非常。我很高兴你明白了 – cegfault 2012-04-10 18:23:13