PHP json_decode 無法解析,那就試試Services_JSON
PHP的json_decode
函數不知道是有bug,還是考慮太少,常常會發生解析不出數據的情況,使用json_last_error_msg()
函數大部分情況下可以獲得下面的錯誤:
Control character error, possibly incorrectly encoded
但是Google了一圈,都沒有辦法去修正這個錯誤,後面諮詢了牛逼閃閃的Kingmax師兄,他說:“json_decode經常會有東西解不出來的,應該用一個叫Sevice_JSON的類去解析,這個比較全能,幫你把特殊字符都處理好了”,試了下果然可以。
到這裡直接下載Services_JSON,然後直接使用:
<?php
include 'JSON.php';
$json = new Services_JSON();
$data = $json->decode($str);
?>
既可以了,如果想和json_decode
的第二個參數一樣,可以解析返回的數據為數組,那就要在new Services_JSON
的時候加上這個參數SERVICES_JSON_LOOSE_TYPE
︰
<?php
include 'JSON.php';
$json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
$data = $json->decode($str);
?>