2012-06-12 80 views
2

我有解析與PHP的JSON飼料的問題,無法弄清楚我做錯了什麼。解析JSON與PHP錯誤「爲foreach()提供的無效參數」

JSON飼料

[{"id":10428167,"url":"some_url","amount":1197,"price":0.37,"seller":{"id":4682621,"name":"Rap17ka7a"}}, 
{"id":10428466,"url":"some_url","amount":1450,"price":0.37,"seller":{"id":5031734,"name":"Meanor"}}, 
{"id":10429969,"url":"some_url","amount":109,"price":0.37,"seller":{"id":5862543,"name":"djeisanborn"}}] 

PHP解析器

$request_url ="json_feed_url_is_here"; 
$requests = file_get_contents($request_url); 
$response = json_decode($requests); 
foreach ($response as $item) { 
$seller = $item->seller->name; 

$seller = str_replace("'", "'", $seller); 
$seller = str_replace("’", "’;", $seller); 


$sql = ("INSERT INTO table_name (~~~cell names~~~) 
     VALUES (~~~cell values~~~, '$item->amount', '$item->price', '$item->url')") or die('<b>Data Insert Error:</b> ' . mysql_error()); 
if (!mysql_query($sql,$con1)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
} 

我得到的是這樣的錯誤:

PHP Warning: Invalid argument supplied for foreach() in path_to_php_file 
+0

'Var_dump'調試結果。顯示文件開頭的十六進制摘錄。 – mario

+0

你的php [看起來好](http://codepad.viper-7.com/ctEXZD),'var_dump''$ requests'。 – j0k

+0

'var_dump($ requests);'給出正常的數據輸出 – milenmk

回答

6

套裝json_decodetrue的第二個參數將JSON轉換爲關聯數組而不是對象。

$response = json_decode($requests, true); 
+0

它已經是一個數組了,因爲它被'[]'包裝了。我通過運行代碼來確認這一點。 – ariefbayu

+0

它給出同樣的錯誤。 – milenmk

+0

@ariefbayu你是對的,結果是一個對象數組。原始代碼應該沒問題。 – flowfree

相關問題