用PHP解析Rome2Rio json文件
我试图用PHP从Rome2Rio API的json文件中提取一个片段,但无法获得输出 rome2rio中的json文件:用PHP解析Rome2Rio json文件,php,json,Php,Json,我试图用PHP从Rome2Rio API的json文件中提取一个片段,但无法获得输出 rome2rio中的json文件: { "serveTime": 1, "places": [ { "kind": "town", "name": "Kozani", "longName": "Kozani, Greece", "pos": "40.29892,21.7972", "countryCode": "GR", "regionCode": "ESYE13" },
{
"serveTime": 1,
"places": [
{ "kind": "town", "name": "Kozani", "longName": "Kozani, Greece", "pos": "40.29892,21.7972", "countryCode": "GR", "regionCode": "ESYE13" },
{ "kind": "city", "name": "Thessaloniki", "longName": "Thessaloniki, Greece", "pos": "40.64032,22.93527", "countryCode": "GR", "regionCode": "ESYE12" }
],
"airports": [],
"airlines": [],
"aircrafts": [],
"agencies": [{
"code": "KTEL",
"name": "KTEL",
"url": "http://www.ktelbus.com/?module=default\u0026pages_id=15\u0026lang=en",
"iconPath": "/logos/Trains/KTELgr.png",
"iconSize": "27,23",
"iconOffset": "0,0"
}
],
"routes": [
{ "name": "Bus", "distance": 121.04, "duration": 120, "totalTransferDuration": 0, "indicativePrice": { "price": 9, "currency": "EUR", "isFreeTransfer": 0 },
"stops": [
{ "name": "Kozani", "pos": "40.30032,21.79763", "kind": "station", "countryCode": "GR", "timeZone": "Europe/Athens" },
{ "name": "Thessaloniki", "pos": "40.6545,22.90233", "kind": "station", "countryCode": "GR", "timeZone": "Europe/Athens" }
]
我编写的PHP代码是:
$json_rome2rio = file_get_contents("http://free.rome2rio.com/api/1.2/json/Search?key=&oName=kozani&dName=thessaloniki");
$parsed_json_r = json_decode($json_rome2rio);
echo $parsed_json_r->agencies->name;
agencies
属性包含一个代理数组(请注意方括号)。要在查找时访问该名称,可以执行以下操作:
echo $parsed_json_r->agencies[0]->name;
这假设至少返回了一个代理,并且如果返回了多个代理,则您要查找的代理是第一个。Json\u decode返回关联数组\u过滤器,而不是对象?尝试
echo$parsed_json_r['agents']['name']
同样,这可能是一个复制粘贴错误,但是,如果您确信收到的JSON有效(您发布的示例不是Terminus指出的),那么您的JSON缺少一些]
和}
),或者将您的问题编辑得更具体一些(我无法获得输出。
相当广泛)。编辑:可能的提示:代理是一个数组。你是正确的,我认为这不是一个数组。谢谢你提供了我想要的结果