2016-05-28 3 views
0

Мне нужно извлечь идентификатор объекта Total_time из этого файла, содержащего нескольких JSON объектовРазбор множественного JSON объектов из одного файла в PHP

{"alternative_names":[["",""]],"route_name":["",""],"status_message":"Found route between points","route_geometry":"qo{`[email protected]@`G`CzEyBfIyEtEoNtEuMpAuHkAsCgC[mB{AgCuA{@[email protected]}[email protected]}@[email protected]@uBeBeB_CcGcXyFi^{Dg\\wBkP_Fs^wBiS_Ce[_D}[email protected]_WyJeE}F`[email protected]|@loBq^[email protected]@[email protected]@r^[email protected]@rMjBdPnEpKlEnH`[email protected]@[email protected]|[email protected][email protected]@[email protected]~zAncBxnA`kB|bB`|CbmCl]rY`xCzkCjwBzoBjxGl_G|fNhcMf~E~mE~pFt}EjbBlzAhvInyHfqDb~CblA`[email protected]@z}@[email protected][email protected][email protected]@[email protected]@[email protected]`JlC`[email protected]@[email protected][email protected]_DvF}qAf}[email protected]{@{CnFoKdR}mA`xBgM|[email protected]|}@[email protected]`[email protected]^[email protected]@mDtL}[email protected][email protected]@[email protected]@uUl\\}DpFzCrCr|@[email protected]|NbLroBx_BdZlV|DbD`[email protected]@r|@[email protected]|[email protected]@}O`XuM`QcDhEoBgBeCCu[xXmBH","route_summary":{"end_point":"","start_point":"","total_time":824,"total_distance":15391},"found_alternative":true,"alternative_summaries":[{"end_point":"","start_point":"","total_time":886,"total_distance":14967}],"via_points":[[25.196808,55.273754],[25.139168,55.187702]],"status":0,"via_indices":[0,144],"hint_data":{"locations":["TdMLAP____8AAAAADwAAAA8AAAA9AAAAbAAAAOtwBgAAAAAACXmAARxpSwMEAAEB","4Q4AAGKyBgAAAAAACQAAAAAAAAAhAQAAAAAAAGUYAAAAAAAA4Zd_AfgYSgMGAAEB"],"checksum":326195011},"alternative_geometries":["qo{`[email protected]@`G`CzEyBfIyEtEoNtEuMpAuHkAsCgC[mB{AgCuA{@[email protected]}[email protected]}@[email protected]@uBeBeB_CcGcXyFi^{Dg\\wBkP_Fs^wBiS_Ce[_D}[email protected]_WyJeE}F`[email protected]|@loBq^[email protected]@[email protected]}[email protected]|[email protected]|O}`@[email protected]@[email protected][email protected][email protected]|[email protected]}[email protected]`[email protected]~J|rBpmAj_CfyAlAzD^[email protected][l|@}[email protected]}[email protected]@[email protected]@ptAk^[email protected]`H`E|Bp[[email protected]`[email protected]|@lbDrzBjWlQ|[email protected]@[email protected]@j^[email protected]@bGvCjkBvoAbjDr}BvfAx{@t\\rSfoDviC~zAjgAfOxIvAbAjwCtsBv|@|[email protected]|BvL`Id_Dt|[email protected]@[email protected]\\xIpGtoBpxAtEdDrQrMzjChlB`[email protected]@nwF`pE|jBl|AzFzE|DfDvDrCjKfJr`@n\\pLzK`[email protected]@[email protected]@[email protected]@z[[email protected]@zCrCr|@[email protected]|NbLroBx_BdZlV|DbD`[email protected]@r|@[email protected]|[email protected]@}O`XuM`QcDhEoBgBeCCu[xXmBH"],"alternative_indices":[0,183]} 

{"hint_data":{"locations":["AXQDAP____8AAAAABwAAABEAAAAYAAAAIwIAAERwAgAAAAAADgyCAef7TAMCAAEB","bOsDAP____8AAAAAAwAAAAcAAADFAQAAFAAAAEJwAgAAAAAANQeCAdzdTAMFAAEB"],"checksum":326195011},"route_name":["",""],"via_indices":[0,15],"via_points":[[25.299982,55.376873],[25.29874,55.369179]],"found_alternative":false,"route_summary":{"end_point":"","start_point":"","total_time":101,"total_distance":871},"route_geometry":"{[email protected]}|rhBpBaBvHuC`EuArEUtEtAlDvEnD`[email protected]@[email protected]","status_message":"Found route between points","status":0} 

и я использую этот скрипт,

<?php 

$data = file_get_contents('sample.json'); 
$data = json_decode($data); 
$totalTime = $data->route_summary->total_time; 
var_dump($totalTime); 
?> 

Но это дает мне NULL Output.Any help, будет оценено?

+0

Ты знаешь что-нибудь о структуре этого файла? Недействительный json, поэтому вы не можете сделать это прямолинейно. Возможно, вам придется сначала делить его. – michaJlS

+1

$ data = json_decode ($ data, true); – JYoThI

+0

@jothi no it's not working –

ответ

0

Значение может быть извлечен,

$totalTime = $data['route_summary']['total_time']; 

Если вы передаете JSON в $data правильно отформатирован.

+0

Это снова дает мне ошибку NULL, следует ли использовать scan_dir() и зацикливать его? –

+0

@BlackUser Вероятно, ваш json не в правильном формате. Вы можете проверить json здесь, http://jsonlint.com/. –

+0

Не проверяется, потому что я разместил 2 json-объектов в одном файле. –

0

Как вы уже упоминали, есть два объекта json, затем я предлагаю прочитать файл в строке. Затем для каждой строки вы можете декодировать json или выгружать ее. Надеюсь, это поможет.

$lines = file('json.data'); 

foreach ($lines as $line_num => $line) { 
    // you are looking for first object 
    $data = json_decode($line); 
    $totalTime = $data->route_summary->total_time; 
    var_dump($totalTime); 
break; 

} 
Смежные вопросы