1. 程式人生 > >php使用json_encode()無法將json字串轉換為陣列.轉換的結果的為null

php使用json_encode()無法將json字串轉換為陣列.轉換的結果的為null

要是使用json_decode()  字串的格式要如下:

[ { "a": "hello", "b" : "world" } ];

如果使用json_decode得到是null ,那麼很可能是 鍵名 沒有加引號 導致 ,要想上面的例子 鍵名a 有加引號這樣才能成功

的轉換為陣列.

ps: 如果要處理的資料是鍵名不加引號的json字串, 如果這樣的格式 [ { a: "hello", b : "world" } ];

如下有一個比較快的轉換為陣列的程式碼如下:

$string = " [ { a: "hello", b : "world" } ]";

$str = preg_match("/(\w):/",  '"$1":' ,  $string);   //  正則找到 單詞和冒號的格式, 然後進行替換. 注意如果鍵名裡面 有冒號的那麼此替換演算法會有問題 

$re = json_decode($str); //得到陣列