• Bitte beachte, dass wir eine Serverliste sind!
    Wenn du ein Problem auf einem Server hast (z.B. Entbannantrag, etc), dann ist das Forum hier der falsche Ort.
  • Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

getJSON API Saubere aushabe.

Prasodym

Minecrafter
Mitglied seit
3 Oktober 2018
Beiträge
6
Minecraft
Prasodym
Guten Abend miteinander,

Ich bin zur zeit auf der suche nache Einer lösung wie ich einer der werte auf eine Webseite sauber ausgeben kann.
Die JSON datei ist eine API von Minecraft-Server.eu https://minecraft-server.eu/api/v1/?object=servers&element=votes&key=5bb487146abc72x389203795bb48XXXXX Das ist dazu der Link für die API

Und jetzt meine Frage, Habt ihr eine Idee Ich zb.

API:
{ "name": "Matthias Testserver", "address": "31.214.224.113", "port": "3300", "month": "201810", "votes": [   {     "date": "October 1st, 2018 10:54 AM CEST",     "timestamp": 1538384065,     "nickname": "Matthias",     "steamid": "76561198028775552",     "claimed": "1"    }  ]}
Den Namen auf einer Webseite ausgeben bekomme?


Ich würde mir freuen über eure Hilfe.
Gruß Tobias
 
Zuletzt bearbeitet:

UnityGaming

Workaholic
Osterei Experte
Mitglied seit
25 Oktober 2015
Beiträge
509
Alter
19
Minecraft
FastFelix771
Ich habe die API noch nie benutzt, aber ich kann mir vorstellen, dass es suboptimal ist deinen API Key hier zu teilen.

Zur Darstellung genügt eigentlich einfachstes HTML. Hol' dir die Daten und render sie in ein beliebiges DOM Element.
 

BloodSKreaper

Miner
Osterei Experte
Mitglied seit
12 Oktober 2014
Beiträge
186
Minecraft
BloodSKreaper
Guten Abend,

ich würde hier mit JavaScript arbeiten, aber das funktioniert nicht, da die API kein CORS anbietet. Das heißt, dass du über PHP oder Ähnliches arbeiten musst. JQuery wäre glaube ich auch noch eine Möglichkeit, aber da kenne ich mich nicht genug mit aus.
Hier kannst du Infos dazu finden, wie das geht.

Freundliche Grüße
BloodSKreaper
 

Prasodym

Minecrafter
Mitglied seit
3 Oktober 2018
Beiträge
6
Minecraft
Prasodym
Habe da auch schon verscheidendes probiert, Ohne erfolg. Also es kommt keine Ausgab.
Gruß Tobias
 

BloodSKreaper

Miner
Osterei Experte
Mitglied seit
12 Oktober 2014
Beiträge
186
Minecraft
BloodSKreaper
Guten Abend,

bei mir funktioniert der folgende Code Einwandfrei:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$url = 'https://minecraft-server.eu/api/v1/?object=servers&element=votes&key=5bb487146abc72x389203795bb487156ac';
$content = get_data($url);
$obj = json_decode($content);
echo $obj->name;
?>
Freundliche Grüße
BloodSKreaper
 

Prasodym

Minecrafter
Mitglied seit
3 Oktober 2018
Beiträge
6
Minecraft
Prasodym
Guten abend bzw Morgen,

Bei mir funktioniert dieser Code
 

Prasodym

Minecrafter
Mitglied seit
3 Oktober 2018
Beiträge
6
Minecraft
Prasodym
Noch eine frage versuche hier stundenlang diese aufzurufen

"nickname": "Matthias"

, bekomme das einfach nicht auf der reihe
 

Prasodym

Minecrafter
Mitglied seit
3 Oktober 2018
Beiträge
6
Minecraft
Prasodym
Das ist die API wie vom ersten Post ich versuche eine 3 Player voteliste zusammen zu zimmern
Sprich, erst das Avatarkopf dan der Nickname und anzahl der vote
 

BloodSKreaper

Miner
Osterei Experte
Mitglied seit
12 Oktober 2014
Beiträge
186
Minecraft
BloodSKreaper
Guten Tag,

ich verstehe die API Dokumentation so, dass jeder Vote einen eigenen Eintrag in dem Array "votes" erhält. Das heißt, dass du einmal die Gesamtanzahl der Votes zum jeweiligen Nickname erst ermitteln musst. Erst dann hast du diese Gesamtanzahl.
Da es sich bei dem votes Objekt um einen Array handelt musst du diesen auch als solchen behandeln.
Im folgenden Beispiel wird der Nickname aus dem ersten Vote aus dem Votes-Array ausgegeben.
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$url = 'https://minecraft-server.eu/api/v1/?object=servers&element=votes&key=5bb487146abc72x389203795bb487156ac';
$content = get_data($url);
$obj = json_decode($content);
$votes = $obj->votes;    #Votes Array
if(count($votes)>0){
    $vote = $votes[0];
    $nickname = $vote->nickname;
    echo $nickname;
}else{
    echo "Kein Vote gefunden!";
}
?>
Um die Anzahl der Votes pro Spieler zu erhalten bietet sich eine Schleife an, die einmal über alle Einträge im votes-Array geht.

Freundliche Grüße
BloodSKreaper
 

BloodSKreaper

Miner
Osterei Experte
Mitglied seit
12 Oktober 2014
Beiträge
186
Minecraft
BloodSKreaper
Beispiel-Lösung für das Problem, auch wenn das Design nicht so schön ist:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$url = 'https://minecraft-server.eu/api/v1/?object=servers&element=votes&key=5bb487146abc72x389203795bb487156ac';
$content = get_data($url);
$obj = json_decode($content);
$votes = $obj->votes;    #Votes Array
if(count($votes)>0){
    $playervotes = array();
    foreach ($votes as $vote){
        $nickname = $vote->nickname;
        if(array_key_exists($nickname,$playervotes)){
            $playervotes[$nickname] += 1;
        }else{
            $playervotes[$nickname] = 1;
        }
    }
    foreach($playervotes as $nickname => $amount){
        echo "<img src=\"https://minotar.net/avatar/".$nickname."\" alt\"Dem ".$nickname." sei Gsicht\">".$nickname.": ".$amount." Votes </br>";

    }
}else{
    echo "Kein Vote gefunden!";
}
?>
 

Prasodym

Minecrafter
Mitglied seit
3 Oktober 2018
Beiträge
6
Minecraft
Prasodym
Top! Du bist der Beste, Es funktioniert so wie ich es mir vorstellte. :)
 
Allgemein
Hilfe Benutzer
    SirYwell SirYwell: hey
    Oben