Mysql
 sql >> Database >  >> RDS >> Mysql

Come analizzo i dati Json dall'API di openlibrary? (propriamente)

Per impostazione predefinita, cURL emette automaticamente il trasferimento. Il tuo codice mostra solo il contenuto json, ma curl_exec($cURL) restituisce 1 o 0 se qualcosa va storto e non il contenuto json. Ecco perché non riesci a ottenere l'array o l'oggetto che desideri con json_decode , la stringa JSON non è nel $result variabile.

Per ottenere ciò che desideri, devi impostare un'altra opzione cURL:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);

In questo modo curl_exec($cURL) restituirà il trasferimento come stringa e non lo produrrà più automaticamente.

Consulta il manuale PHP sui valori restituiti di curl_exec .

Quindi devi solo usare 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]);
}