2017-02-28 73 views
0

我想讀從PHP一個JSON這樣的:讀取外部JSON在PHP

[{ 
    "titulo": "DontAsk", 
    "pais": "Austria", 
    "country_iso": "AT", 
    "direccion": "Mag. Th. Langmann Gmbh Landstrasse 4", 
    "cp_ciudad": "A-2000 STOCKERAU", 
    "lat": "48.385583", 
    "long": "16.207823", 
    "telefono": "43-2266-72554-11", 
    "fax": "43-2266-72554-44", 
    "web": "www.aaa.com" 
}, { 
    "titulo": "Other One", 
    "pais": "Czech Republic", 
    "country_iso": "CZ", 
    "direccion": "Pod Cihelnou 6", 
    "cp_ciudad": "664 161 00 PRAHA 6", 
    "lat": "50.092605", 
    "long": "14.312707", 
    "telefono": "420 233 313 578", 
    "fax": "420 233 313 582", 
    "web": "www.bbb.com" 
}] 

的JSON有沒有錯誤,我試着用JsonLint,發現它乾淨。 我有更多的插入,但我只是推杆2.

然後我嘗試代碼行這樣的:

 $json = json_decode(file_get_contents($url), true); 
    var_dump($json); 

的URL返回檢索URL不錯,但在返回的var_dump NULL

我看到了很多答案和問題,並沒有找到答案。 有些幫助?

讀JSON - >在陣列轉換在PHP - >提取的陣列中的上述代碼

由於

+0

可能的重複[如何從JSON提取數據與PHP?](http://stackoverflow.com/questions/29308898/how-do-i-extract-data-from-json-with-php) –

+0

你有什麼問題? –

+0

這個JSON字符串用'json_decode'正確解析。 https://3v4l.org/3Qn0V檢查'file_get_contents($ url)'是否給你預期的結果。 –

回答

0

JSON字符串($ JSON)是對象的一個​​數組。也就是說,外層是一個數組文字,其元素是對象文字。默認情況下json_decode的結果將是對象的數字索引數組

$json = '[{ 
"titulo": "DontAsk", 
"pais": "Austria", 
"country_iso": "AT", 
"direccion": "Mag. Th. Langmann Gmbh Landstrasse 4", 
"cp_ciudad": "A-2000 STOCKERAU", 
"lat": "48.385583", 
"long": "16.207823", 
"telefono": "43-2266-72554-11", 
"fax": "43-2266-72554-44", 
"web": "www.aaa.com" 
}, { 
"titulo": "Other One", 
"pais": "Czech Republic", 
"country_iso": "CZ", 
"direccion": "Pod Cihelnou 6", 
"cp_ciudad": "664 161 00 PRAHA 6", 
"lat": "50.092605", 
"long": "14.312707", 
"telefono": "420 233 313 578", 
"fax": "420 233 313 582", 
"web": "www.bbb.com" 
}]'; 
$data = json_decode($json); 
echo $data[1]->titulo; 

,併爲您的REFFERENCE檢查這個http://www.dyn-web.com/tutorials/php-js/json/decode.php

0

如果你想要的是用PHP以後的工作中,而不是一個數組關聯數組對象(這是什麼json_decode手默認設置),然後指定它在功能上的這樣的第二個參數:

$json = '[{ 
"titulo": "DontAsk", 
"pais": "Austria", 
"country_iso": "AT", 
"direccion": "Mag. Th. Langmann Gmbh Landstrasse 4", 
"cp_ciudad": "A-2000 STOCKERAU", 
"lat": "48.385583", 
"long": "16.207823", 
"telefono": "43-2266-72554-11", 
"fax": "43-2266-72554-44", 
"web": "www.aaa.com" 
}, { 
"titulo": "Other One", 
"pais": "Czech Republic", 
"country_iso": "CZ", 
"direccion": "Pod Cihelnou 6", 
"cp_ciudad": "664 161 00 PRAHA 6", 
"lat": "50.092605", 
"long": "14.312707", 
"telefono": "420 233 313 578", 
"fax": "420 233 313 582", 
"web": "www.bbb.com" 
}]'; 

$data = json_decode($json, true); 
var_dump($data['titulo']); 

但如果問題是,它返回NULL,檢查你的腳本是否獲得了預期的輸入(例如, G。你得到一個由json_decode解析的字符串)。