Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie parse ich Json-Daten von der Openlibrary-API? (richtig)

Standardmäßig cURL automatisch die Überweisung ausgeben. Ihr Code zeigt nur den json-Inhalt an, aber curl_exec($cURL) gibt 1 oder 0 zurück, wenn etwas schief geht, und nicht den json-Inhalt. Aus diesem Grund können Sie das gewünschte Array oder Objekt nicht mit json_decode abrufen , ist die JSON-Zeichenfolge nicht im $result enthalten Variable.

Um das Gewünschte zu erhalten, müssen Sie eine andere cURL-Option festlegen:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);

Auf diese Weise curl_exec($cURL) wird die Übertragung als String zurückgeben und nicht mehr automatisch ausgeben.

Siehe das PHP-Handbuch über die zurückgegebenen Werte von curl_exec .

Dann brauchen Sie nur noch json_decode zu verwenden :

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