Php Json Decode - Anzeigewert von Elementen der zweiten Ebene

Oct 28 2020

Ich versuche, das JSON-Format zu dekodieren. Mein API-Endpunkt ist https://api.reliableserver.host/api/landings

Und das ist die Ausgabe

{
    "success": true,
    "data": [
        {
            "id": 1,
            "primary_balance": "$4,184.37",
            "primary_currency": "USD",
            "secondary_balance": "¥0",
            "secondary_currency": "JPY",
            "tertiary_balance": "฿0.00",
            "tertiary_currency": "THB",
            "first_language": "ไทย",
            "second_language": "English",
            "footer_text": "a",
            "created_at": "2020-10-26T07:45:49.000000Z",
            "updated_at": "2020-10-28T05:31:04.000000Z",
            "deleted_at": null
        }
    ],
    "message": "Landings retrieved successfully"
}

Ich muss einzelne Werte wiedergeben, zum Beispiel: Primärsaldo: 4.184,37 USD

Ich habe versucht, dies zu verwenden:

$url = "https://api.reliableserver.host/api/landings"; $obj = json_decode($url); echo $obj>primary_balance;

Aber es hat nicht funktioniert, bitte führe mich, was ich falsch mache.

Antworten

2 sta Oct 28 2020 at 13:10

Sie können dies folgendermaßen tun:

$url = '{"success": true,"data": [{"id": 1,"primary_balance": "$4,184.37","primary_currency": "USD","secondary_balance": "¥0","secondary_currency": "JPY","tertiary_balance": "฿0.00","tertiary_currency": "THB","first_language": "ไทย","second_language": "English","footer_text": "a","created_at": "2020-10-26T07:45:49.000000Z","updated_at": "2020-10-28T05:31:04.000000Z","deleted_at": null}],"message": "Landings retrieved successfully"}';
$obj = json_decode($url, true);
echo $obj['data'][0]['primary_balance']; // output $4,184.37

Oben Code hier getestet

Sie benötigen die Methode file_get_contents () , um die JSON-Daten von Ihrer angegebenen URL abzurufen .

$url = "https://api.reliableserver.host/api/landings"; $obj = json_decode(file_get_contents($url), true); echo $obj['data'][0]['primary_balance'];
// output $4,184.37
ChiragKamat Oct 28 2020 at 13:21

Grundsätzlich nennst du diese API nirgendwo. Wenn es sich um einen offenen Endpunkt handelt (ohne Authentifizierung oder Header können Sie file_get_contents () ausführen, oder ich empfehle Ihnen, curl zu verwenden . Außerdem müssen Sie die Struktur der Antwortdaten überprüfen. Es gibt einen 'Daten'-Schlüssel, bei dem es sich um ein Array handelt Sie müssen foreach verwenden , um den 'Daten'-Schlüssel zu iterieren.

Ich habe eine Beispielantwort gegeben, die funktionieren sollte, wenn nur 1 Element in den Daten enthalten ist.

    $url = "https://api.reliableserver.host/api/landings"; $resp = file_get_contents($url); $obj= json_decode($resp);// will return in object form echo $obj->data[0]->primary_balance;

oder

$url = "https://api.reliableserver.host/api/landings"; $resp = file_get_contents($url); $obj= json_decode($resp, true); // will return in array form echo $obj['data'][0]['primary_balance'];

json_decode ()