1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

(Anfänger) JSON korrekt auslesen, wie?

Dieses Thema im Forum "PHP" wurde erstellt von Kenox, 4. November 2016.

  1. Kenox

    Kenox Grünschnabel

    Hallo Community,

    ich habe mich gewagt, PHP auf eigene Pfoten zu lernen.
    Klappt soweit sogar ganz gut, bisauf das JSON auslesen.
    Ich möchte von "players", "maxplayers" & "online" so ausgeben
    lassen: "0/128". - Jedoch klappt das nicht soganz. :/

    (API: https://mcapi.de/api/server/31.172.80.114)
    Code:
    Code (Text):
    1. <?php
    2.  
    3.     $seite = file_get_contents("https://mcapi.de/api/server/31.172.80.114");
    4.     $array = json_decode($seite, true);
    5.     if($array['players'] == 0) {echo "0/128";}
    6.     elseif($array['players'] > 0) {echo "0/128";}
    7.     echo $array['players'];
    8. ?>
    Bitte seid nicht so streng mit mir, ich bin ein Anfänger! :D
    Danke im Vorraus!
    Mit freundlichen grüßen,
    Kenox
     
  2. Yaslaw

    Yaslaw n/a Moderator

    Als erstes immer für sich selber den JSON formatieren, damit man die Verschachtelungen gut erkennt.
    Code (Text):
    1. {
    2.     "result":{
    3.         "status":"Ok",
    4.         "message":"No errors."
    5.     },
    6.     "hostname":"31.172.80.114",
    7.     "players":{
    8.         "max":250,
    9.         "online":0
    10.     },
    11.     "updated":{
    12.         "time":"2016-11-04 14:56:08",
    13.         "expires":"2016-11-04 15:01:08",
    14.         "zone":"Europe\/Berlin"
    15.     }
    16. }
    Dann erkennt man, dass die Verschachtelung so aussieht
    Code (PHP):
    1. $max = $array['players']['max'];
    2. $online= $array['players']['online'];
    Den Rest deiner Frage habe ich nicht verstanden.
     
    Kenox gefällt das.
  3. Kenox

    Kenox Grünschnabel

    Danke! Funktioniert jetzt.
    Habe es so:
    Code (Text):
    1. <?php
    2.  
    3.     $seite = file_get_contents("https://mcapi.de/api/server/151.80.33.142");
    4.     $array = json_decode($seite, true);
    5.     $max = $array['players']['max'];
    6.     $online= $array['players']['online'];
    7.     $players = $online.'/'.$max;
    8.     echo $players
    9. ?>
     
  4. Kenox

    Kenox Grünschnabel

    @Yaslaw Ich habe doch wieder ein Problem:
    aus https://mcapi.ca/query/mc.minseside.de/info möchte ich "status"
    auslesen. Das habe ich bereits:
    PHP:
    1. <?php
    2.     $seite = file_get_contents("https://mcapi.ca/query/mc.minseside.de/info");
    3.     $array = json_decode($seite, true);
    4.     $status= "\"".$array['status']."\"";
    5.     echo $status;
    6. ?>
    7.    
    Jedoch wird mir kein "true" oder "false" angezeigt.
    lediglich die zwei Anführungszeichen ("")

    Danke im Vorraus!
     
  5. DerKleene1

    DerKleene1 Mitglied

    So sollte es klappen:
    PHP:
    1. <?php
    2.     $seite = file_get_contents("https://mcapi.ca/query/mc.minseside.de/info");
    3.     $array = json_decode($seite, true);
    4.     if(!$array['status']){
    5.       $status = "False";
    6.     }else{
    7.       $status = "True";
    8.     }
    9.     echo $status;
    10. ?>
     
    Kenox gefällt das.
Die Seite wird geladen...