2015-09-08 96 views
2

我試過其他SO頁面,但找不到解決方案。如何在php中正確加載json?

我有一個json文件,我試圖導入到一個php文件,但它返回NULL。

我的web服務器上的json是有效的,但沒有運氣。

http://higconsolidated.com/json.json 

PHP文件:

$json = file_get_contents('http://higconsolidated.com/json.json'); 
$obj = json_decode($json); 
var_dump($obj); 

錯誤日誌:

的file_get_contents(higconsolidated.com/json.json):未能打開 流:連接在getjson.php

拒絕

在此先感謝。

+0

我可以看到你JSON? – aldrin27

+0

雖然我的結局很好。我得到的答案是「d」,這是真的嗎? –

+0

aldrin27檢出http://higconsolidated.com/json.json – ASH

回答

2

在你的PHP中,你使用的是json.json而不是json.php。可能json.json不存在。

您的更新後: 對於我來說,有一個文件

<?php 
    $json = file_get_contents('http://higconsolidated.com/json.json'); 
    $obj = json_decode($json); 
    var_dump($obj); 
?> 

產生array(47) { [0]=> object(stdClass)#1 (5) { ["code"]=> string(4) "1031" ["par"]=> string(1) "1" ["category"]=> string(1) "A" ["product"]=> string(18) "FIDJI QUINOA SALAD" ["format"]=> string(5) "2x1kg" } [1]=>...

如果你有額外的代碼,請嘗試使用上面的最小文件。

第二次更新後:您的問題與解析JSON無關。看來你遇到了某種請求/流量限制或防火牆問題。 higconsolidated.com是您運行PHP文件的同一臺主機嗎?

+0

http://higconsolidated.com/json.json – ASH

+0

我看到這在我的錯誤日誌。即使你的最低限度的代碼..文件獲取內容連接被拒絕 – ASH

+0

file_get_contents(http://higconsolidated.com/json.json):未能打開流:連接拒絕getjson.php – ASH

0
$json = file_get_contents('http://higconsolidated.com/json.php'); 
+1

http://higconsolidated.com/json.json – ASH

0

你的方法是對的,但讓我建議你檢查你正在使用的json文件的格式。

<?php 

// the following strings are valid JavaScript but not valid JSON 

// the name and value must be enclosed in double quotes 
// single quotes are not valid 
$bad_json = "{ 'bar' : 'baz' }"; 
json_decode($bad_json); // null 

// the name must be enclosed in double quotes 
$bad_json = '{ "bar" : "baz" }'; 
json_decode($bad_json); // null 

// trailing commas are not allowed 
$bad_json = '{ "bar" : "baz", }'; 
json_decode($bad_json); // null 

?> 

看看這裏http://php.net/manual/en/function.json-decode.php

+0

http://higconsolidated.com/json.json – ASH

0
$json = file_get_contents('http://higconsolidated.com/json.json'); 
$obj = json_decode($json); 
foreach ($obj as $value) 
{ 
    //you can retrieve all the keys here 
    echo $value->code."<br>" ; 
}