MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Lire un fichier JSON et l'afficher dans un GUI

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    14 Messages 3 Publieurs 721 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • ? Hors-ligne
      Un Ancien Utilisateur
      dernière édition par

      J’ai repris le code pour la requête http comme tu m’as dit mais après je ne comprend pas comment récupérer le contenu de les variables de mon fichier JSON avec gson

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        Bha faut faire un peu de recherche, ce n’est pas compliqué : https://www.mkyong.com/java/how-to-parse-json-with-gson/

        1 réponse Dernière réponse Répondre Citer 0
        • ? Hors-ligne
          Un Ancien Utilisateur
          dernière édition par Un Ancien Utilisateur

          J’ai un problème à la ligne 13:

                  new Thread() {
          
                      @Override
                      public void run() {
                          
                      	try {
          
                              URL url = new URL("http://...../config.json");
                              InputStream is = url.openStream();
                              String json = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8));
          
                              ConfigMod configmod = gson.fromJson(json, ConfigMod.class);
                          	
                          	if(ConfigMod.maintenance == "true") {
                          	
                          		GuiCustomMainMenu.this.scrollingText = ConfigMod.maintenancenews;
                      		
                          	} else {
                          		
                          		GuiCustomMainMenu.this.scrollingText = ConfigMod.news;
                          		
                          	}
          
                          } catch(Exception e) {
          
                              GuiCustomMainMenu.this.scrollingText = "Impossible de lire les news!";
          
                          }
          
                      }
          
                  }.start();
          

          Cette ligne n’enregistre pas les variables du fichier JSON dans la class ConfigMod car il faut mettre un <Type> mais je ne sais pas quel Type mettre pour que cela écrive les variables du String du fichier JSON que je récupère dans la class ConfigMod.

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par robin4002

            C’est à quel endroit qu’il demande d’ajouter le type ? Envoies aussi le code de ta classe ConfigMod.

            1 réponse Dernière réponse Répondre Citer 0
            • ? Hors-ligne
              Un Ancien Utilisateur
              dernière édition par Un Ancien Utilisateur

              Il me demande type après le String json dans la variable fromJson:
              ConfigMod configmod = gson.fromJson(json, ICI);

              Le code de ma classe ConfigMod:

              public class ConfigMod {
              	
                  public static String news;
                  public static String maintenance;
                  public static String maintenancenews;
              
              }
              
              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                Les variables ne doivent pas être static.

                1 réponse Dernière réponse Répondre Citer 0
                • ? Hors-ligne
                  Un Ancien Utilisateur
                  dernière édition par

                  J’ai enlevé static des variables mais maintenant le problème vient des “ConfidMod.news”, “ConfigMod.maintenance” et “ConfigMod.maintenancenews” qui ont une erreur.

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Bha oui, tu essaies d’accéder à ces variables comme s’il était static …
                    Il faut passer par l’instance de la classe, donc par ta variable configmod.

                    Va falloir revoir la base de Java si tu es bloqué par ce genre de chose.

                    1 réponse Dernière réponse Répondre Citer 0
                    • AmaA Hors-ligne
                      Ama
                      dernière édition par

                      Je pratique les json avec gson depuis un petit moment maintenant.
                      Donc.
                      Je vais réécrire deux trois trucs.
                      Toujours en partant de cette base de fichier json.

                      {
                          "News": "NEWS",
                          "Maintenance": "false",
                          "MaintenanceNews": "MAINTENANCE NEWS"
                      }
                      
                      public class ConfigMod {
                      	
                      //Au diable le static. Utilises les getters et setters
                      
                      //Ces valeurs doivent être de la même orthographe que dans ton json.
                      //Sinon, serializes les avec un autre nom.
                      @SerializedName("News") // <- Clé dans dans le fichier JSON
                      private String news;
                      
                      @SerializedName("Maintenance")
                      private  boolean maintenance;
                      
                      @SerializedName("MaintenanceNews")
                      private  String maintenanceNews;
                       
                      public String getNews() { return news; }
                      
                      public boolean getMaintenance() { return maintenance; }
                      
                      public String getMaintenanceNews() { return maintenanceNews; }
                      }
                      

                      Comme tu peux le voir j’utilise le boolean dans sa juste mesure.
                      En Boolean et pas en String.

                      Du coup je fichier json resemble à ça désormais.

                      {
                          "News": "NEWS",
                          "Maintenance": false,
                          "MaintenanceNews": "MAINTENANCE NEWS"
                      }
                      

                      Le reste de la lecture du fichier me semble correcte.

                      Tips: Si le texte de maintenance est sur plusieurs ligne, utilise une array de texte, ce sera plus sympa.

                      {
                        "News": "NEWS",
                        "Maintenance": false,
                        "MaintenanceNews": [
                          "Ma première ligne !",
                          "Ma seconde ligne de News de Maintenance."
                        ]
                      }
                      

                      Si je t'ai filé un coup de main n'oublie pas le + / -
                      Par contre évite les demandes d'aides en MP, tu sera sympa'

                      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                      1 réponse Dernière réponse Répondre Citer 1
                      • ? Hors-ligne
                        Un Ancien Utilisateur
                        dernière édition par

                        Bonjour,
                        Merci j’ai modifié mon code et maintenance ça marche.

                        1 réponse Dernière réponse Répondre Citer 1
                        • AmaA Hors-ligne
                          Ama
                          dernière édition par

                          Nickel !

                          Si je t'ai filé un coup de main n'oublie pas le + / -
                          Par contre évite les demandes d'aides en MP, tu sera sympa'

                          La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                          Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                          1 réponse Dernière réponse Répondre Citer 0
                          • ? Hors-ligne
                            Un Ancien Utilisateur
                            dernière édition par

                            Ce message a été supprimé !
                            1 réponse Dernière réponse Répondre Citer 0
                            • 1 / 1
                            • Premier message
                              Dernier message
                            Design by Woryk
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB