Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço para analisar dados Json da API openlibrary? (devidamente)


Por padrão, cURL saída automaticamente a transferência. Seu código exibe apenas o conteúdo json, mas curl_exec($cURL) retorna 1 ou 0 se algo der errado, e não o conteúdo json. É por isso que você não consegue obter a matriz ou objeto que deseja com json_decode , a string JSON não está no $result variável.

Para obter o que deseja, você precisa definir uma outra opção cURL:
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);

Desta forma curl_exec($cURL) retornará a transferência como uma string e não a produzirá mais automaticamente.

Consulte o manual do PHP sobre os valores retornados de curl_exec .

Então você só precisa usar json_decode :
foreach (json_decode($result, true) as $book) {
    printf("\nISBN: %s\ttitle: %s\tauthor: %s", $book['details']['isbn_10'][0], $book['details']['title'], $book['details']['contributions'][0]);
}