2012-11-29 84 views
0

我有一些很奇怪的問題,json_decode奇怪的問題

我試圖解析一些JSON字符串使用PHP,字符串數組,如果我用簡單的

json_decode($my_array[0],true) 

它不工作,但是,如果我只是從var_dump($ my_array)複製一個字符串並嘗試解碼,它可以100%正常工作。

任何想法可能是錯誤的?

JSON字符串:

{"mode":"view","pid":"243","documentId":"193"} 
+0

究竟是什麼不起作用?你在期待什麼? 「 – eisberg

+0

」*不起作用*「沒有意義。 – melpomene

+0

我的猜測是,你的JSON字符串有一些意想不到的無形(空格),這些使其成爲在第一種情況下無效JSON字符,但不被當您複製+粘貼橫跨進行,因而複製粘貼+版本的作品。 – SDC

回答

2

庫巴,

這裏的語法轉換JSON數組成PHP關聯數組:

$my_array = '{"mode":"view","pid":"243","documentId":"193"}'; 
$new_array = json_decode($my_array,true); 

echo $new_array['mode']; //return: view 
echo $new_array['pid']; //return: 243 
echo $new_array['documentId']; //return: 193 

的var_dump()結果:

array (size=3) 
    'mode' => string 'view' (length=4) 
    'pid' => string '243' (length=3) 
    'documentId' => string '193' (length=3) 
+0

我知道語法和如何做到這一點,我已經使用了好幾次;-)看來,這可能是一些關於空格(正如SDC在評論中所說) – kuba

0

好吧,我已經找到了解決方案,數據序列化之後,我使用BASE64_ENCODE編碼字符串,然後將其推入該表單的其他腳本。

我仍然不知道爲什麼,我不得不用Base64編碼,它,可能是因爲此字符串中的JavaScript腳本,之後在PHP解碼使用?