Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment analyser les données Json de l'api openlibrary ? (correctement)

Par défaut, cURL sort automatiquement le transfert. Votre code affiche uniquement le contenu json, mais curl_exec($cURL) renvoie 1 ou 0 si quelque chose ne va pas, et non le contenu json. C'est pourquoi vous ne parvenez pas à obtenir le tableau ou l'objet souhaité avec json_decode , la chaîne JSON n'est pas dans le $result variables.

Pour obtenir ce que vous voulez, vous devez définir une autre option cURL :

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);

De cette façon curl_exec($cURL) renverra le transfert sous forme de chaîne et ne le sortira plus automatiquement.

Voir le manuel PHP sur les valeurs renvoyées de curl_exec .

Ensuite, il vous suffit d'utiliser 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]);
}