Utiliser des datas JSON

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Utiliser des datas JSON

    Bonjour,

    je tiens un site web fait avec Joomla (v3.7.2) pour notre "clan" sur le jeu Elite: Dangerous.
    Dans ce jeu nous y contrôlons un système solaire où notre clan a un certain pourcentage d'influence sur ledit système solaire. En haut à droite dans notre site je fais défiler un texte où sont écrit des pourcentages qui représentent notre % d'influence de notre système solaire dans ce jeu. Ces données sont pour l'instant rentrées à la main avec le module "HTML Personnalisé".

    Ce que je voudrais faire c'est de ne plus à devoir rentrer ces données à la main depuis que le jeu propose une API au format JSON si je comprend bien. Des 3rd websites l'utilisent comme par exemple sur EDDB (Elite Dangerous Data Base).
    Cette page affiche les données du système solaire dont j'aimerais récupérer les informations également.

    Voici un des log de l'API que j'aimerais exploiter pour mon site web:
    https://ross.eddb.io/eddn/log/28183851.
    Mon objectif est de récupérer les données de "Influence".

    Ma question est la suivante: existe-t-il un plugin/component qui permet de "lire" ces données JSON et de les exploiter *facilement* ?

    Je vous demande cela car je n'ai aucune connaissance là-dedans. J'ai tenté quelques tutos avant mais sans trop de succès.


    Merci d'avance pour votre aide !
    Dernière édition par Black_Storm à 03/06/2017, 14h13

  • #2
    Re : Utiliser des datas JSON

    Edit: Si je modifie le JSON et que je ne garde que la partie concernant "Factions", alors le code PHP fonctionne.
    Y-a-t'il moyen que cela fonctionne sans avoir besoin d'éditer le fichier JSON ?
    Test ici: http://51thmassilia.net/wing51/test_json.php


    Petit bump. Je continue mes recherche, j'ai trouvé quelques petits bout de code en PHP afin de l'adapter selon mes besoins.
    Avec le code que je poste ci-dessous, j'obtiens l'erreur suivante:
    Warning: Invalid argument supplied for foreach() in /home/thmassil/www/wing51/json.php on line 5


    Code PHP:
    <?php
        $jsondata 
    file_get_contents("influence.json");
        
    $json json_decode($jsondata,true);
        
    $output "<ul>";
        foreach(
    $json['Factions'] as $faction){
            
    $output .= "<h4>".$faction['Name']."</h4>";
            
    $output .= "<li>".$faction['Allegiance']."</li>";
            
    $output .= "<li>".$faction['Influence']."</li>";
            
    $output .= "<li>".$faction['Government']."</li>";
        }
        
    $output .= "</ul>";
        echo 
    $output;
    ?>
    Voici le JSON en question.
    Code:
    {
        "header": {
            "softwareVersion": "2.3.0-b8",
             "gatewayTimestamp": "2017-05-28T03:08:23.603722Z",
             "softwareName": "EDDI",
             "uploaderID": "Kanade_sol"
        },
         "$schemaRef": "http://schemas.elite-markets.net/eddn/journal/1",
         "message": {
            "StarSystem": "BV Phoenicis",
             "SystemFaction": "51TH Massilia Corporation",
             "timestamp": "2017-05-28T03:08:00Z",
             "SystemSecurity": "$SYSTEM_SECURITY_high;",
             "SystemAllegiance": "Independent",
             "PowerplayState": "Exploited",
             "SystemEconomy": "$economy_Industrial;",
             "StarPos": [
                41.531,
                 -106.094,
                 24.563
            ],
             "Factions": [
                {
                    "Allegiance": "Empire",
                     "FactionState": "Boom",
                     "Influence": 0.123,
                     "Name": "LHS 1071 Empire Group",
                     "Government": "Patronage"
                },
                 {
                    "Allegiance": "Empire",
                     "FactionState": "None",
                     "Influence": 0.122,
                     "Name": "Conservatives of BV Phoenicis",
                     "Government": "Dictatorship"
                },
                 {
                    "Allegiance": "Independent",
                     "FactionState": "None",
                     "Influence": 0.047,
                     "Name": "BV Phoenicis Blue Galactic Net",
                     "Government": "Corporate"
                },
                 {
                    "Allegiance": "Independent",
                     "FactionState": "Boom",
                     "Influence": 0.104,
                     "Name": "Workers of BV Phoenicis Free",
                     "Government": "Democracy"
                },
                 {
                    "Allegiance": "Empire",
                     "FactionState": "None",
                     "Influence": 0.123,
                     "Name": "Natural BV Phoenicis Front",
                     "Government": "Dictatorship"
                },
                 {
                    "Allegiance": "Independent",
                     "FactionState": "Boom",
                     "Influence": 0.043,
                     "Name": "BV Phoenicis Raiders",
                     "Government": "Anarchy"
                },
                 {
                    "Allegiance": "Independent",
                     "FactionState": "None",
                     "Influence": 0.438,
                     "Name": "51TH Massilia Corporation",
                     "Government": "Corporate"
                }
            ],
             "Powers": [
                "Denton Patreus"
            ],
             "event": "FSDJump",
             "SystemGovernment": "$government_Corporate;"
        }
    }

    Est-ce que je poste au bon endroit ? Car je pense que là vu le sujet ça devrait plutôt aller dans un forum consacré au PHP non ?
    Dernière édition par Black_Storm à 28/05/2017, 15h55

    Commentaire


    • #3
      Re : Utiliser des datas JSON

      salut
      je pense que tu pourrais simplement écrire un module dans lequel tu charges ton code php
      par contre je pense qu'il faut que tu donnes l'url de ton fichier json
      file_get_contents("influence.json")
      ici ça va le chercher dans le dossier où tu as mis ton code ce qui à mon avis est la source de ton erreur
      tu fais une boucle sur un résultat que tu n'as pas vu que tu n'arrives pas à récupérer les infos

      vérifie l'url
      CEd
      Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
      http://www.template-creator.com Outil de création de templates
      Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

      Commentaire


      • #4
        Re : Utiliser des datas JSON

        Bonjour ced1870, j'arrivais à afficher ce que je voulais mais pas de la manière dont je voulais.
        Avec l'aide d'un copain, il m'a fait le gros du boulot qui consistait à afficher les données telles que je le voulais. Il ne me reste plus qu'à inclure ça dans le site par moi-même.

        http://51thmassilia.net/wing51/influence_test/v2/

        Comme le taff en question qu'il a fait est complètement hors de Joomla (il m'a dit qu'il utilise l'Angular de Google etc) pour arriver à ce résultat, je pense qu'on peut clore mon sujet à moins que quelqu'un ait une autre idée pour le même résultat

        Bonne journée à tous !
        Dernière édition par Black_Storm à 03/06/2017, 14h17

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X