Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1661 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Fichier JSON to string

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fichier JSON to string

n°2324489
Le Taz
/need saltiques
Posté le 20-11-2018 à 14:26:59  profilanswer
 

Bonjour,
 
Je suis plutôt newbie en programmation Java, et je suis en train de développer un code qui, entre autre, lit le contenu d'un fichier JSON pour le transformer en chaîne de caractère.
 
Exemple:

Code :
  1. {
  2. "toto1":0,
  3. "toto2":1,
  4. "toto3":2
  5. }


 
A transformer en:
 

Code :
  1. "[{\"toto\":0,\"toto2\":1,\"toto3\":2}]"


 
J'ai lu quelques informations sur le net mais ce n'est pas encore très clair pour moi. J'ai néanmoins pondu quelque chose en me basant sur ce lien:
https://www.includehelp.com/java-pr [...] -File.aspx
 
Ce que je ne comprends pas, c'est que mon code (qui est un quasi copié/collé de celui-là) me renvoit une chaîne dont les clés de mon fichier Json ne sont pas dans le même ordre (ce qui est primordial dans mon cas): {"toto3":2,"toto2":1,"toto":0}
 
Autre chose, j'aimerais également qu'il y ai un \ avant les guillemets "; sur le net, je lis des fois que c'est quelque chose de natif en travaillant avec des objets Json et pourtant, je n'arrive pas à comprendre pourquoi je ne les affiche pas. J'ai l'impression qu'il me manque des éléments.
 
Sur tous ces points, merci d'avance de votre aide.


---------------
Galerie HFR - Profil D3
mood
Publicité
Posté le 20-11-2018 à 14:26:59  profilanswer
 

n°2324583
DDT
in trollo veritas
Posté le 21-11-2018 à 16:14:20  profilanswer
 

L'ordre des clés est arbitraire en JSON (cf. les spécifications).
 
Donc si tu lis ton fichier avec une bibliothèque Java qui va le transformer dans sa représentation interne (JSONObject sur la page de ton lien), puis tu convertis cette structure de données vers une chaîne de caractères, rien ne garantit que l'ordre des clés soit conservé.
 
Mais ta question initiale se résume à de la manipulation de texte, donc tu n'as pas besoin de faire tout ça. Tu cherches à faire quoi exactement?


---------------
click clack clunka thunk
n°2324591
Le Taz
/need saltiques
Posté le 21-11-2018 à 16:51:36  profilanswer
 

:jap:
S'il y a un côté aléatoire, alors je ne comprends pas pourquoi le résultat qui m'est retourné est toujours le même (inverse de celui du contenu de mon fichier Json).
 
Ce que je cherche à faire tout simplement c'est, à partir d'un fichier Json, en récupérer le contenu (quelque soit sa structure et tel qu'il existe dans le fichier; je ne veux pas juste récupérer les valeurs de mes clés mais bien TOUT le contenu du fichier, avec les accolades, les clés, les valeurs, les caractère spéciaux etc...) dans une variable de type string dans un code Java.
 
Si je reprends mon exemple ci-dessus - le contenu de mon fichier JSON.txt :
 

Code :
  1. {
  2. "toto1":0,
  3. "toto2":1,
  4. "toto3":2
  5. }


 
A transformer en :
 

Code :
  1. JsonContent = "[{\"toto\":0,\"toto2\":1,\"toto3\":2}]";


Message édité par Le Taz le 21-11-2018 à 16:55:07

---------------
Galerie HFR - Profil D3
n°2324592
DDT
in trollo veritas
Posté le 21-11-2018 à 17:13:52  profilanswer
 

Arbitraire c'est pas aléatoire, le fonctionnement interne de JSONObject est très certainement déterministe. :D
Mais c'est un détail d'implémentation justement, et tu ne devrais pas t'appuyer dessus.
 

Code :
  1. /tmp$ cat > JSON.txt << EOF
  2. > {
  3. > "toto1":0,
  4. > "toto2":1,
  5. > "toto3":2
  6. > }
  7. > EOF
  8. jshell> File file = new File("JSON.txt" )
  9. file ==> JSON.txt
  10. jshell> String JsonContent = Files.lines(file.toPath()).map(line -> line.trim().replaceAll("\"", "\\\"" )).collect(Collectors.joining("", "[","]" ))
  11. JsonContent ==> "[{\"toto1\":0,\"toto2\":1,\"toto3\":2}]"


---------------
click clack clunka thunk
n°2324598
Le Taz
/need saltiques
Posté le 21-11-2018 à 17:42:10  profilanswer
 

Merci de ton aide; cependant, je ne retrouve pas exactement le même résultat que toi; en effet, je n'ai pas les backslash.


---------------
Galerie HFR - Profil D3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Fichier JSON to string

 

Sujets relatifs
Notification sur smartphone quand un fichier sur PC est modifiéLecteur audio et fichier acentué
[DEBUTANT] Condition pour ouvrir un fichier ne fonctionne pasTester si la chaine de caractère mène a un dossier ou un fichier
VBA : Autoriser modifications à l'ouverture d'un fichierparamétre dans un fichier de conf
Macro copier-coller d'un fichier vers un autreRécupération des données json
Soucis intégration date dans HTML/JSONDéplacer plusieurs fichier en ajoutant la date
Plus de sujets relatifs à : Fichier JSON to string


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR