Frage API / JSON Variablen speichern

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

sveka

Mitglied
26 Mai 2006
107
0
16
33
Hallo, ich benötige eure Hilfe bzw. Denkansätze. :)

Es geht um eine externe JSON Abfrage per API.

Und zwar wie folgt ... Ich kann über einen erzeugten Link wie z.B. https://re.jrc.ec.europa.eu/api/PVcalc?lat=45&lon=8&peakpower=1&loss=14&outputformat=json

eine JSON Ausgabe bekommen. Ich möchte aber (da es eine externe Abfrage ist) eine Rückantwort um gewisse Werte in Variablen zu speichern.

Geht das? Wenn ja, mit welchen Befehlen muss ich mich beschäftigen?

Ich danke für euer Feedback.
 

sveka

Mitglied
26 Mai 2006
107
0
16
33
Hallo,

folgender Code liegt nun zu Grunde.

Code:
<?php 

error_reporting(E_ALL);

$url = 'https://re.jrc.ec.europa.eu/api/PVcalc?lat=45&lon=8&peakpower=1&loss=14&outputformat=json';

    $curl = curl_init();
    $headers = array();
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    $json = curl_exec($curl);
    curl_close($curl);
     
    $data = json_decode($json, TRUE); 

    var_dump($json);

   
?>

Die Var-Dump Ausgabe funktioniert und er holt sich das "JSON". Nun habe ich versucht darauf per Array oder Objekte zuzugreifen.

Jedes Mal mit Fehlermeldungen wie zB. fehlender INDEX etc.

Wie greife ich nun die Daten "ab"?
 

sveka

Mitglied
26 Mai 2006
107
0
16
33
Hallo,

habe den Code nochmal angepast um mir das Array anzeigen zu lassen. Nun kann ich auch zugreifen.

Code:
<?php 

error_reporting(E_ALL);

$url = 'https://re.jrc.ec.europa.eu/api/PVcalc?lat=45&lon=8&peakpower=1&loss=14&outputformat=json';

    $curl = curl_init();
    $headers = array();
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    $json = curl_exec($curl);
    curl_close($curl);
     
    $data = json_decode($json, TRUE); 

    // var_dump($data);

    echo "<pre>";
    print_r($data);
    echo "</pre>";

     echo "<br /><br />";

    echo $data[inputs][meteo_data][meteo_db];
?>

Allerdings gibt er mir trotz erfolgreichen Zugriffs folgende Fehler aus ...

Notice: Use of undefined constant inputs - assumed 'inputs' in /../json.php on line 27

Notice
: Use of undefined constant meteo_data - assumed 'meteo_data' in /.../json.php on line 27

Notice
: Use of undefined constant meteo_db - assumed 'meteo_db' in /.../json.php on line 27

Gibt es dafür noch Hinweise?
 

jonas3344

Mitglied
25 Oktober 2019
68
23
8
37
Ja, etwas direkt vielleicht aber lern den korrekten PHP-Syntax. :)

Code:
echo $array['index1']['index2'];

Finde den Unterschied zu Dir.
Googeln hilft jeweils auch:
.