2016-01-20 40 views
0

在PHP项目JSON我得到一个字符串,如:解码功能,具有数字键PHP

$s = '{1:"perro", 2:"gato", 3:{"other":"stuff"}}' 

我只是想分析它使用:

$jotason = json_decode($s, true); 

但我什么也没得到。

我认为这个问题与JSON字符串中的无效数字键有关[我像他们那样接收它们,不能改变它们被构造的方式]。

我相信肯定有一个明显的和愚蠢的方法来解决这个问题,但我完全没有理解它。 ¿建议?

谢谢!

+0

从那里你收到此字符串?你正在创建还是从数据库? – AnkiiG

+0

我把他们从第三人的js脚本中删除 – kikusin

回答

-2

你应该抱怨创建不产生有效JSON的源代码的人。大声抱怨!可能挥动着沉重的东西。

与此同时

,这应该修复它,除非你有一个包含像一个字符串“1234”:

$s = preg_replace("/([1-9][0-9]*):/", "\"$1\":", $s); 
+0

谢谢Franz!是的,如果可能的话,获得正确的文档将是最好的选择。同时我会尝试你的建议。 – kikusin

+0

让我补充一点:它有一些小的变化,因为我有其他的键,如“15:30”......但一旦确信没有其他方式比以前修复JSON,正则表达式是好的。 Thx再次。 – kikusin