-
Bonjour,
Dans mon tutoriel sur la personnalisation du menu principale j’ai monté comment ajouter un texte défilant lu depuis une requête http : https://www.minecraftforgefrance.fr/topic/4205/modifier-le-menu-principal#ajouter-un-texte-défilant
Tu peux reprendre le même code pour la requête http. Ensuite pour parser le json obtenu, tu peux utiliser la bibliothèque gson (qui est déjà intégré à Minecraft, puis qu’utilisé pour lire les jsons des modèles).
-
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
-
Bha faut faire un peu de recherche, ce n’est pas compliqué : https://www.mkyong.com/java/how-to-parse-json-with-gson/
-
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.
-
C’est à quel endroit qu’il demande d’ajouter le type ? Envoies aussi le code de ta classe ConfigMod.
-
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; } -
Les variables ne doivent pas être static.
-
J’ai enlevé static des variables mais maintenant le problème vient des “ConfidMod.news”, “ConfigMod.maintenance” et “ConfigMod.maintenancenews” qui ont une erreur.
-
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 variableconfigmod.Va falloir revoir la base de Java si tu es bloqué par ce genre de chose.
-
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." ] } -
Bonjour,
Merci j’ai modifié mon code et maintenance ça marche. -
Nickel !

-
Ce message a été supprimé !