Получить список значений DOI из JSON URL - PullRequest
0 голосов
/ 05 марта 2019

У меня короткий JSON-файл с URL

https://api.crossref.org/works?query.title=Tuberculosis+drug&filter=type:journal-article,from-print-pub-date:2010,until-print-pub-date:2010&select=DOI&rows=3

Я использовал этот код, чтобы получить total-results и список DOI значение

$crossref_api_url = 'https://api.crossref.org/works?query.title=Tuberculosis+drug&filter=type:journal-article,from-print-pub-date:2010,until-print-pub-date:2010&select=DOI&rows=2';

$JSON = file_get_contents($crossref_api_url);
$Array = json_decode($JSON, true);          

$items_list = $message->items; 
$totalItems = $message->total-results;  
echo $totalItems;

for($i = 0; $i < count($items_list ); $i++) {
    $doi = $items_list[$i]->items->DOI;
    echo $doi;  
}

Результат появляется 0. Нет totalItems значения, DOI списка.

Пожалуйста, помогите мне найти ошибку моего кода. Спасибо

1 Ответ

0 голосов
/ 05 марта 2019

Правильный код:

$crossref_api_url = 'https://api.crossref.org/works?query.title=Tuberculosis+drug&filter=type:journal-article,from-print-pub-date:2010,until-print-pub-date:2010&select=DOI&rows=2';

$JSON = file_get_contents($crossref_api_url);
$Array = json_decode($JSON, true);          // with `true` you decode to ARRAY

$items_list = $Array['message']['items']; 
$totalItems = $Array['message']['total-results'];  
echo $totalItems;

foreach ($items_list as $item) {
    echo $item['DOI'];  
}
...