2016-01-20 38 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