2017-02-28 70 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解析的字符串)。