Hallo PHPHulp,

Ik heb een probleem met het uitlezen van JSON, ik gebruik postcodeapi en krijg de volgende JSON weer via print_r($object);

stdClass Object
(
    [_embedded] => stdClass Object
        (
            [addresses] => Array
                (
                    [0] => stdClass Object
                        (
                            [purpose] => winkelfunctie
                            [postcode] => 1012JS
                            [surface] => 23820
                            [municipality] => stdClass Object
                                (
                                    [id] => 0363
                                    [label] => Amsterdam
                                )

                            [city] => stdClass Object
                                (
                                    [id] => 3594
                                    [label] => Amsterdam
                                )

                            [letter] => 
                            [geo] => stdClass Object
                                (
                                    [center] => stdClass Object
                                        (
                                            [rd] => stdClass Object
                                                (
                                                    [type] => Point
                                                    [coordinates] => Array
                                                        (
                                                            [0] => 121394
                                                            [1] => 487383
                                                        )

                                                    [crs] => stdClass Object
                                                        (
                                                            [type] => name
                                                            [properties] => stdClass Object
                                                                (
                                                                    [name] => urn:ogc:def:crs:EPSG::28992
                                                                )

                                                        )

                                                )

                                            [wgs84] => stdClass Object
                                                (
                                                    [type] => Point
                                                    [coordinates] => Array
                                                        (
                                                            [0] => 4.8937176
                                                            [1] => 52.3732926
                                                        )

                                                    [crs] => stdClass Object
                                                        (
                                                            [type] => name
                                                            [properties] => stdClass Object
                                                                (
                                                                    [name] => urn:ogc:def:crs:OGC:1.3:CRS84
                                                                )

                                                        )

                                                )

                                        )

                                )

                            [nen5825] => stdClass Object
                                (
                                    [postcode] => 1012 JS
                                    [street] => DAM
                                )

                            [addition] => 
                            [number] => 1
                            [year] => 1914
                            [province] => stdClass Object
                                (
                                    [id] => 27
                                    [label] => Noord-Holland
                                )

                            [id] => 0363200003761447
                            [type] => Verblijfsobject
                            [street] => Dam
                            [_links] => stdClass Object
                                (
                                    [self] => stdClass Object
                                        (
                                            [href] => https://api.postcodeapi.nu/v2/addresses/0363200003761447/
                                        )

                                )

                        )

                )

        )

    [_links] => stdClass Object
        (
            [self] => stdClass Object
                (
                    [href] => https://api.postcodeapi.nu/v2/addresses/?postcode=1012JS&number=1
                )

        )

)

Nu wil ik van deze uitkomst alleen de postcode in een echo hebben. Dat probeer ik als volgt:
$postcode = $object['_embedded']['addresses']['0']['postcode'];

Als ik dit doe krijg ik een lege pagina terug. (ik zie geen foutcode.)

Dit is het PHP script wat ik gebruik:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.postcodeapi.nu/v2/addresses/?postcode=1012js&number=1",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: application/hal+json",
    "x-api-key: authcode staat hier!"
  ),
));

$response = curl_exec($curl);

$err = curl_error($curl);

$object = json_decode($response);
$postcode = $object['_embedded']['addresses']['0']['postcode'];

if ($err) {
  echo "cURL Error #:" . $err;
  echo "hallo?";
} else {
echo $postcode;
}

?>

Als je het wilt uitlezen als een array, zorg dan ook dat het een array is.

json_decode() heeft meerdere parameters.

Als je de tweede parameter de waarde true geeft heb je wellicht meer succes...
Argggh wat dom, excuses had dit zelf moeten opvallen..

Dank voor de reactie.

Reageren