Som standard är cURL automatiskt mata ut överföringen. Din kod visar bara json-innehållet, men curl_exec($cURL) returnerar 1 eller 0 om något blir fel, och inte json-innehållet. Det är därför du inte kan få arrayen eller objektet du vill ha med json_decode , JSON-strängen finns inte i $result variabel.
För att få det du vill ha måste du ställa in ett annat cURL-alternativ:
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);
På detta sätt curl_exec($cURL) returnerar överföringen som en sträng och kommer inte längre att mata ut den automatiskt.
Se PHP-manualen
om de returnerade värdena för curl_exec .
Då behöver du bara använda 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]);
}