我想解析這個來自url的json數據,但我得到NULL我該如何解決這個問題。無效json數據
$source = file_get_contents('http://partners.socialvi.be/e414f702cf3db89a2fe58066bbab369d65b6a058/activities/available.json');
$json = json_decode($source);
var_dump($json);
我想解析這個來自url的json數據,但我得到NULL我該如何解決這個問題。無效json數據
$source = file_get_contents('http://partners.socialvi.be/e414f702cf3db89a2fe58066bbab369d65b6a058/activities/available.json');
$json = json_decode($source);
var_dump($json);
這是因爲在API中JSONP format返回數據,而不是純粹的JSON。注意周圍的onSVJson([])
。你要麼必須去掉這個,要麼讀取API文檔並嘗試另一種請求格式。我的猜測是,留下最後的&callback=onSVJson
應該做的伎倆。
刪除網址的最後一部分(&callback=onSVJson
),它會工作。
許多API提供了一個名爲JSONP的功能,允許將JSON傳遞給回調函數,以便通過跨域JavaScript簡化訪問。但對於PHP而言,您並不需要它。
回調函數的名稱通常使用callback
GET參數指定。如果你不這樣做,就不會使用回調函數 - 只是簡單的JSON。
您是否在'json_decode()'之前嘗試過'echo $'的內容? – jerluc
當你在解碼之前直接調用url時,你會得到什麼? – JMax
URL爲我返回'onSVJson([])',所以不要奇怪 – Gordon