Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Mauvais formatage fichier Json : " et \ parasites


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Mauvais formatage fichier Json : " et \ parasites
    Bonjour,

    Je génère un fichier json à partir d'un fichier Csv avec un job qui comprend les composants TfileInuputDelimited --> TWriteJsonFields --> TFileOutputJson

    J'ai plusieurs problèmes à la génération de mon fichier :
    1°) il m'ajute des \ un peu partout
    2°° les valeurs numériques sont entre "
    3°) je voudrais ne pas afficher le premier noeud data

    Voici le fichier généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"data":[{"fosse":"{\"rootTag\":{\"Fosse\":\"Fos1\",\"horizon\":{\"Horizon\":[\"F1 00-40\",\"F1 40-95\",\"F1 95-140\"],\"Refus\":\"26.58\",\"ARG\":\"34.25\",\"LF\":\"36.0\",\"LG\":\"41.75\",\"SABF\":\"88.41\",\"SABG\":\"758.7\",\"ALSMO\":\"979.9\",\"pH\":\"4.73\",\"pH_JFL\":\"4.28\",\"pHKCl\":\"4.0\",\"CT\":\"0.0\",\"CT_JFL\":\"0.0\",\"MO\":\"29.89\",\"MO_JFL\":\"20.79\",\"Norga\":\"1.18\",\"P2O5\":\"27.0\",\"K2O\":\"78.0\",\"CaO\":\"395.0\",\"Cu\":\"5.14\",\"Zn\":\"2.6\",\"Mn\":\"26.4\",\"B\":\"0.25\",\"Fe_DTPA\":\"306.0\",\"CEC\":\"4.21\",\"S\":\"1.9\",\"satu\":\"45.08\"}}}"}]}
    Le paramétrage des schémas du TwriteJsonFields :
    Nom : json.png
Affichages : 35
Taille : 24,8 Ko

    La structure du TWriteJsonFields:
    Nom : json2.png
Affichages : 37
Taille : 26,6 Ko


    Merci d'avance pour vos réponses,
    Jérôme

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 680
    Points : 1 449
    Points
    1 449
    Par défaut
    Je pense que ton CSV a ce genre de format

    "toto","velo","tutu"

    Tu devrais plutôt regarder la configuration du composant tFileInputDelimeted.
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci pour la réponse.
    Mon csv ne contient pas ce type de caractère. Cf. le début du contenu de mon CSV vu dans un éditeur de texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Fosse;Horizon;Refus;ARG;LF;LG;SABF;SABG;ALSMO;pH;pH JFL;pHKCl;CT;CT JFL;MO;MO JFL;Norga;P2O5;K2O;CaO;Cu;Zn;Mn;B;Fe-DTPA;CEC;S;satu
    Fos1;F1 00-40;26.58;34.25;36;41.75;88.41;758.7;979.9;4.73;4.28;4;0;0;29.89;20.79;1.18;27;78;395;5.14;2.6;26.4;0.25;306;4.21;1.9;45.08
    Fos1;F1 40-95;54.81;28.75;64.75;7.25;54.77;836.62;992.14;5.277;4.57;4.38;0;0;3.75;0;0.35;3;22;45;1.84;0.8;4.24;0.09;47.5;0.89;0.25;27.88
    Fos1;F1 95-140;52.64;35.5;17.75;13;27.38;914.27;1007.9;5.589;4.8;4.52;0;0;1.72;0;0.27;2;28;41;1.35;1.06;4.69;0;26.4;0.55;0.32;57.97
    Fos2;F2 00-60;26.2;51.75;49;46.75;94.76;724.5;975.79;5.973;5.37;5.05;0;0;12.54;9.03;0.77;50;26;704;6.4;4.32;16.3;0.13;133;3.26;2.81;86.28
    Fos2;F2 60-100;41.39;43.5;51;49;76.84;764.61;1003.59;5.783;5.51;4.49;0;0;2.66;18.64;0.32;78;19;255;2.74;1.28;5.53;0.07;61.6;1.79;1.05;58.75
    Fos2;F2 100-180;58.49;36.25;22.25;13.75;20.96;908.42;1001.63;5.699;5.8;4.85;0;;0.53;0;0.24;30;22;332;1.05;0.37;0.71;0.04;20.4;1.26;1.29;100
    Dans Talend, quand j'envoie le contenu du csv dans un composant tlogrow, voici ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Fos1|F1 00-40|26.58|34.25|36.0|41.75|88.41|758.7|979.9|4.73|4.28|4.0|0.0|0.0|29.89|20.79|1.18|27.0|78.0|395.0|5.14|2.6|26.4|0.25|306.0|4.21|1.9|45.08
    Fos1|F1 40-95|54.81|28.75|64.75|7.25|54.77|836.62|992.14|5.277|4.57|4.38|0.0|0.0|3.75|0.0|0.35|3.0|22.0|45.0|1.84|0.8|4.24|0.09|47.5|0.89|0.25|27.88
    Les caractères parasites ne semblent donc pas provenir de mon TFileInuptDelimited

  4. #4
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 680
    Points : 1 449
    Points
    1 449
    Par défaut
    Ton élément de boucle ne doit pas être sur la ligne du dessus?
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Mon CSV contient des analyses pédologiques sur les fosses. Pour la fosse1, j'ai 3 horizons différents (1 horizon = 1 ensemble d'analyses à une profondeur donnée) et donc 3 lignes dans mon fichier csv.

    Dans mon json, je n veux pas répéter la fosse 3 fois mais bien retrouver ma fosse 1 seule fois avec mes 3 horizons, ce qui explique que je n'ai pas mis mon élément de boucle sur la fosse

  6. #6
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 680
    Points : 1 449
    Points
    1 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TWriteJsonFields --> TFileOutputJson
    C'est ça le problème...

    le tWriteJsonField te crées une chaine de caractère et le tFileOutputJson te la format en Json.

    Normalement le tWriteJsonField fait la même chose que le tFileOutputJson à part que le premier à une sortie dans le flux talend et le deuxième dans un fichier.

    Es-tu sur d'avoir besoin de ton tWriteJsonField ?
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci bien.

    Effectivement, si j'envoie le résultat du twritejson dans un fichier csv, je n'ai plus les caractères \

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"rootTag":{"Fosse":"Fos1","horizon":[{"Horizon":"F1 00-40","Refus":"26.58","ARG":"34.25","LF":"36.0","LG":"41.75","SABF":"88.41","SABG":"758.7","ALSMO":"979.9","pH":"4.73","pH_JFL":"4.28","pHKCl":"4.0","CT":"0.0","CT_JFL":"0.0","MO":"29.89","MO_JFL":"20.79","Norga":"1.18","P2O5":"27.0","K2O":"78.0","CaO":"395.0","Cu":"5.14","Zn":"2.6","Mn":"26.4","B":"0.25","Fe_DTPA":"306.0","CEC":"4.21","S":"1.9","satu":"45.08"},{"Horizon":"F1 40-95","Refus":"54.81","ARG":"28.75","LF":"64.75","LG":"7.25","SABF":"54.77","SABG":"836.62","ALSMO":"992.14","pH":"5.277","pH_JFL":"4.57","pHKCl":"4.38","CT":"0.0","CT_JFL":"0.0","MO":"3.75","MO_JFL":"0.0","Norga":"0.35","P2O5":"3.0","K2O":"22.0","CaO":"45.0","Cu":"1.84","Zn":"0.8","Mn":"4.24","B":"0.09","Fe_DTPA":"47.5","CEC":"0.89","S":"0.25","satu":"27.88"},{"Horizon":"F1 95-140","Refus":"52.64","ARG":"35.5","LF":"17.75","LG":"13.0","SABF":"27.38","SABG":"914.27","ALSMO":"1007.9","pH":"5.589","pH_JFL":"4.8","pHKCl":"4.52","CT":"0.0","CT_JFL":"0.0","MO":"1.72","MO_JFL":"0.0","Norga":"0.27","P2O5":"2.0","K2O":"28.0","CaO":"41.0","Cu":"1.35","Zn":"1.06","Mn":"4.69","B":"0.0","Fe_DTPA":"26.4","CEC":"0.55","S":"0.32","satu":"57.97"}]}}
    Par contre, mes valeurs numériques restent encadrées par des "

    Nb : j'utilise le twritejson car j'ai besoin de faire un groupby. (j'ai 3 lignes d'analyses par fosse que je veux regrouper dans mon json) or cette instruction n'est pas présente dans le tfileoutput json

  8. #8
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 680
    Points : 1 449
    Points
    1 449
    Par défaut
    Citation Envoyé par steffe33
    Par contre, mes valeurs numériques restent encadrées par des "
    Vérifier le type dans le schéma. Si c'est un string le passer en double

    Citation Envoyé par Steffe33
    j'utilise le twritejson car j'ai besoin de faire un groupby. (j'ai 3 lignes d'analyses par fosse que je veux regrouper dans mon json) or cette instruction n'est pas présente dans le tfileoutput json
    A tester j'ai déjà eu le même problème avec le XML
    Quand je changeais le type de sortie d'un tWriteXml de String en Document, il ne formatait plus le xml avec tWriteXmlFile mais le formater toujours avec le tWriteAdvencedWmlFile...
    Pour ma part c'est pour ça que je n'aime pas faire des fichiers de données sémantique (JSON, XML) avec Talend (Toujours besoin de bidouiller, pour des transformations compliqués).
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  9. #9
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2014
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Dans mon schéma, mes champs de valeur sont bien paramétrés en double ...

Discussions similaires

  1. [Encodage] Formatage d'un fichier json
    Par pontex dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2012, 20h50
  2. [AJAX] recupérer plusieur fichiers JSON
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2007, 15h41
  3. structure fichier JSON
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2007, 09h51
  4. Formatage fichier texte Windows-Linux
    Par dr_octopus74 dans le forum Administration système
    Réponses: 2
    Dernier message: 02/02/2007, 19h09
  5. [AJAX] Récupération d'un fichier JSON avec javaScript
    Par guerin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/11/2006, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo