2012-05-14 55 views
0

的last.fm API將返回使用PHP多餘的字符

json_decode($response, ($returnType == 'array')); 

JSON字符串,我轉換成數組當響應傾倒它給了我下面的JSON字符串:

{"session":{"name":"turncoat9","key":"b311abDee2d34e07541eeeefted2bad","subscriber":"0"}} 1 

(注意1最後)

由於這個額外的字符json字符串不能轉換爲關聯數組,因此我的問題。

我發現幾個討論說明1是一個BOM(字節順序掩碼)字符,但提供的所有解決方案都不適用於我的json字符串。

這個角色是什麼?爲什麼在那裏,爲什麼當我在本地開發時不會發生這種情況? 這是什麼解決方案?

嘗試這種在兩個不同的網絡服務器,給了相同的結果

+0

額外的只顯示當死() – kendepelchin

回答

0

可以使用裝飾將其刪除:

$cleaned_json = trim($received_json, '1 '); 

Manual

+0

是它修剪它,但它不會將其轉換爲數組... – kendepelchin

+0

嘗試修剪1以及修剪空間,如果有任何 - 如果你只修剪1但不是尾部空格 - 它實際上不是一個json格式,而是一個字符串 – user769889

+0

我做了,給出了相同的結果 – kendepelchin

0

首先,我不明白($returnType == 'array'),你應該只把TRUE there

assoc - >When TRUE, returned objects will be converted into associative arrays.

其次,你從API獲得什麼答案?你確定它只返回json字符串嗎?

+0

$ returnType是一個參數。所以當這個參數等於'數組'時,它將是真的,所以是的。將會出現'true':) 下一頁:一切工作在本地,所以我編寫了所有基於Json字符串的代碼,並且返回了所有我想要返回的代碼 – kendepelchin

+0

我非常肯定你有一些回聲地方,也許不同的文件編碼?關閉'?>'並留下一些空格後? –

+0

但是爲什麼echo會在json字符串中? 這是last.fm的反應,它來自於我的猜測。 – kendepelchin