2014-03-13 77 views
0

如何可以解析JSON數組字符串數組在PHP我如何解析JSON數組字符串數組在PHP

'[{"a": "1", "b": "2"}, {"a": "3"}]' 

似乎json_decode允許只分析對象,但不是數組。應該在使用json_decode之前手動解析爲數組?


似乎在字符串問題。我得到JSON的變量,如果我將它輸出,看起來像JSON是有效

echo($jsonvar); //result [{"title":"Home","id":"/","url":"/"}] 

但是當我嘗試從變量解析字符串,其結果是,即使字符串修剪沒什麼

echo('[{"title":"Home","id":"/","url":"/"}]', true); //nice parsed array 
echo($jsonvar, true); //nothing 
echo(trim($jsonvar, " \t\n\r\0\x0B"), true); //nothing 
+2

它又是怎樣得到兩票獲得JSON到數組?如果文檔實際上是被讀取的,那麼這個問題就不會被問到。從doc:'當TRUE時,返回的對象將被轉換爲關聯數組。' ' – SamV

+0

不管你信不信,'json_decode()'實際上可以解碼JSON;任何有效的JSON。我無法弄清楚你是如何得出不同的結論的。 –

+0

該問題已經通過下面的代碼解決了:json_decode(html_entity_decode($ jsonvar));',對於愚蠢的問題抱歉,由於答案無法刪除。我認爲原因是陣列。 – IgorCh

回答

4

true作爲第二個參數傳遞給json_decode()以將json字符串解析爲數組。

$json='[{"a": "1", "b": "2"}, {"a": "3"}]'; 
$arr= json_decode($json,true); 
print_r($arr); 
0

您可以使用真正的標誌json_decode()

<?php 
$str = '[{"a": "1", "b": "2"}, {"a": "3"}]'; 
$arr=json_decode($str,true); 
print_r($arr);