sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo analizo los datos Json de la API de openlibrary? (adecuadamente)

Por defecto, cURL emite automáticamente la transferencia. Tu código solo muestra el contenido json, pero curl_exec($cURL) devuelve 1 o 0 si algo sale mal, y no el contenido json. Es por eso que no puede obtener la matriz u objeto que desea con json_decode , la cadena JSON no está en $result variables.

Para obtener lo que desea, debe configurar otra opción de cURL:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);

De esta forma curl_exec($cURL) devolverá la transferencia como una cadena y ya no la generará automáticamente.

Consulte el manual de PHP sobre los valores devueltos de curl_exec .

Entonces solo necesitas 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]);
}