解码具有数字键 PHP 的 JSON


Decoding a JSON that have numeric keys PHP

在PHP项目中,我得到一个字符串,如下所示:

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

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

$jotason = json_decode($s, true); 

但我一无所获。

我认为问题与 JSON 字符串中的无效数字键有关 [我像那样收到它们,无法更改它们的构造方式]。

我相信一定有一个明显而愚蠢的方法来解决这个问题,但我完全对此视而不见。 ¿建议?

谢谢!

您应该向创建源代码的人投诉没有产生有效的JSON。并大声抱怨!可能挥舞着沉重的东西。

同时,这应该可以修复它,除非您有一个包含类似"1234:"的字符串:

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