2013-09-19 4 views
0

Как получить «продолжительность» значение из приведенной ниже JSON в PHP:Получить элемент из JSON в PHP

{ 
"kind": "youtube#videoListResponse", 
"etag": "\"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/EGNSBh81ISlkeECbqD9xdh5C340\"", 
"pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 1 
}, 
"items": [ 
    { 
    "kind": "youtube#video", 
    "etag": "\"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/yUebIRJfQ62Pq5XpRbqJHx7Xozo\"", 
    "id": "7lCDEYXw3mM", 
    "contentDetails": { 
    "duration": "PT15M51S", 
    "dimension": "2d", 
    "definition": "hd", 
    "caption": "true", 
    "licensedContent": false, 
    "contentRating": { 
    "ytRating": "" 
    } 
    } 
    } 
] 
} 

перепробовал много примеров, но как это приводит к ошибке объекта или недопустимые индекса?

+0

Показать объект PHP, а не оригинальный JSON. – JJJ

+0

После json_decoded вы можете сказать '['items'] ['contentDetails'] ['duration']' –

+0

, пожалуйста, напишите, что вы пробовали ... – iJade

ответ

2
$jsonObj = json_decode($json); 
$duration = $jsonObj->items[0]->contentDetails->duration; 

или

$jsonArr = json_decode($json, true); 
$duration = $jsonArr['items'][0]['contentDetails']['duration']; 

или в цикле:

$jsonArr = json_decode($json, true); 
foreach ($jsonArr['items'] as $item) { 
    echo $item['contentDetails']['duration']; 
} 
+0

Протестировано первое, и это работает, спасибо :). Любые идеи о том, как преобразовать синтаксический анализ «ISO 8601» в секундах? – Stacked

+1

загляните в этот вопрос :-) http://stackoverflow.com/questions/3721085/parse-and-create-iso-8601-date-and-time-intervals-like-pt15m-in-php – DanFromGermany

+2

Спасибо, это сделало трюк: '' '$ interval = new DateInterval ($ duration); $ tseconds = (($ interval-> format ('% h') * 60) * 60) + (формат $ interval-> ('% i') * 60) + $ interval-> format ('% s'); echo $ tseconds; '' ' – Stacked

1
$json = <<<JSON 
{ 
"kind": "youtube#videoListResponse", 
"etag": "\"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/EGNSBh81ISlkeECbqD9xdh5C340\"", 
"pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 1 
}, 
"items": [ 
    { 
    "kind": "youtube#video", 
    "etag": "\"6jI4SSPcXxEAc3i_1EQHOPi0Cvc/yUebIRJfQ62Pq5XpRbqJHx7Xozo\"", 
    "id": "7lCDEYXw3mM", 
    "contentDetails": { 
    "duration": "PT15M51S", 
    "dimension": "2d", 
    "definition": "hd", 
    "caption": "true", 
    "licensedContent": false, 
    "contentRating": { 
    "ytRating": "" 
    } 
    } 
    } 
] 
} 
JSON; 

$data = json_decode($json); 

foreach ($data['items'] as $item) { 
    echo $item['contentDetails']['duration']; 
} 
1

Попробуйте

здесь URL видео ид это идентификатор видео, пожалуйста, не забудьте изменить его

<?php 
$url=file_get_contents("https://gdata.youtube.com/feeds/api/videos/videoid?v=2"); 
$data = json_decode($url); 

$duration = $data['items']['duration']; 
echo $duration; 
?> 
Смежные вопросы