解码具有数字键PHP的JSON

时间:2016-01-20 12:39:28

标签: php json parsing

在PHP项目中,我得到一个字符串:

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

我只是想用以下方法解析它:

$jotason = json_decode($s, true); 

但我一无所获。

我认为问题与JSON字符串中的无效数字键有关[我收到它们,不能改变它们的构造方式]。

我确信必须有一种明显而愚蠢的方法来解决这个问题,但我对它完全视而不见。 ¿连连呢?

谢谢!

1 个答案:

答案 0 :(得分:-2)

你应该向创建源代码的人抱怨不生成有效的JSON。 并大声抱怨!可能是在挥舞着沉重的东西。

在此期间,这应该修复它,除非你有一个包含类似“1234:”的字符串:

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