IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Langage Perl Discussion :

Convertion en JSON problème


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Par défaut Convertir un fichier en JSON
    Salut,

    Dans la catégorie "problèmes plus que divers pour une même personne" je suis pas mauvais, aussi après les tableaux, les redo, je m'attaque aujourd'hui au format JSON.

    Je voulais savoir si quelqu'un savait convertir n'importe quel fichier (texte pas binaire) en JSON via PERL ?


    Voilà du format JSON pour ceux qui connaissent pas le nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    {
        "menu":
        {
            "id": "file",
            "value": "File",
            "popup":
            {
                "menuitem":
                [
                    { "value": "New", "onclick": "CreateNewDoc()" },
                    { "value": "Open", "onclick": "OpenDoc()" },
                    { "value": "Close", "onclick": "CloseDoc()" }
                ]
            }
        }
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Par défaut Convertion en JSON problème
    Salut,

    Aujourd'hui je souhaite convertir un objet PERL en JSON. Pour cela j'ai installé le module JSON.
    http://search.cpan.org/~makamaka/JSON-2.53/lib/JSON.pm
    Voici un exemple de format JSON
    Je me doute bien que ce module ne doit jamais être utilisé par la plupart des gens mais si quelqu'un sait s'en servir par pitié !


    Mon problème est que cela retourne toujours null quand je souhaite printer au la variable en JSON.


    Voilà mon code (le problème peut venir de la partie objet même si j'en doute fortement, si quelqu'un voit une erreur qu'il se manifeste ^^)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #!/usr/bin/perl
     
    package module_JSON;
     
    use strict;
    use warnings;
     
    use JSON;
    use Bio::SeqIO;
     
     
    sub constructeur {
    	my ($classe, $id, $desc, $seq) = @_;
    	my $this = 	{
    					'id' 	=> $id,
    					'desc'	=> $desc,
    					'seq'	=> $seq
    				};
    	bless($this, $classe);
    	#print $this->{id}."\n".$this->{desc}."\n".$this->{seq}."\n";
    	return $this;
     
    }
     
     
     
    my $in = Bio::SeqIO->new(-format => 'fasta', -file => $ARGV[0]) or die "\n"."Erreur, $!"."\n";
     
    while(my $seq = $in->next_seq()){
     
    	my $objet = module_JSON -> constructeur($seq->primary_id(), $seq->desc(), $seq->seq());
     
    	print $objet->{id}."\n".$objet->{desc}."\n".$objet->{seq}."\n";
     
    	my $json = JSON->new->allow_nonref; 
    	$json->allow_blessed(1); 
    	$json->convert_blessed(1); 
    	my $json_text   = $json->pretty->encode($objet);
     
    	print $json_text."\n\n";
     
    }
    1;

    Voici le résultat sur mon terminal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    sp|A0A183|LCE6A_HUMAN
    Late cornified envelope protein 6A OS=Homo sapiens GN=LCE6A PE=2 SV=1
    MSQQKQQSWKPPNVPKCSPPQRSNPCLAPYSTPCGAPHSEGCHSSSQRPEVQKPRRARQKLRCLSRGTTYHCKEEECEGD
    null
     
     
    sp|A0A5B9|TRBC2_HUMAN
    T-cell receptor beta-2 chain C region OS=Homo sapiens GN=TRBC2 PE=1 SV=1
    DLKNVFPPEVAVFEPSEAEISHTQKATLVCLATGFYPDHVELSWWVNGKEVHSGVSTDPQPLKEQPALNDSRYCLSSRLRVSATFWQNPRNHFRCQVQFYGLSENDEWTQDRAKPVTQIVSAEAWGRADCGFTSESYQQGVLSATILYEILLGKATLYAVLVSALVLMAMVKRKDSRG
    null
     
     
    tr|A0AUK0|A0AUK0_HUMAN
    TXLNA protein (Fragment) OS=Homo sapiens GN=TXLNA PE=2 SV=1
    MKNQDKKNGAAKQSNPKSSPGQPEAGSFDSLDLEKVSLGRALAGRSELGISCLEQGTWRMFLRGMMCWS
    null
     
     
    tr|A0AUL9|A0AUL9_HUMAN
    ATG2A protein (Fragment) OS=Homo sapiens GN=ATG2A PE=2 SV=1
    MSRWLWPWSNCVKERVCRYLLHHYLGHFFQEHLSLDQLSLDLYKGSVALRDIHLEIWSVNEVLESMESPLELVEGFVGSIEVAVPWAALLTDHCTVRVSGLQLTLQPRRGPAPGAADSQSWASCMTTSLQLAQECLRDGLPEPSEPPQPLEGLEMFAQTIETVLRRIKVTFLDTVVRVEHSPGDGERGVAVEVRVQRLEYCDEAVRDPSQAPPVDVHQPPAFLHKLLQLAGVRLHYEELPAQEEPPEPPLQIGSCSGYMELMVKLKQNEAFPGPKLEVAGQLGSLHLLLTPRQLQQLQELLSAVSLTDHEGLADKLNKSRPLGAEDLWLIEQDLNQQLQAGAVAEPLSPDPLTNPLLNLDNTDLFFSMAGLTSSVASALSELSLSDVDLASSVRSDMASRRLSAQARPGLALQGMATVKDAFPACPLPICCERGASLPWGLSPGSALFLRGERTLPLPRPGPTLLPSPRTEAFGPSDPIPLSQVSFCVWGEEGMISVWFDVLFLSSVSAWVSVC
    null
     
     
    tr|A0AUP3|A0AUP3_HUMAN
    LOC339290 protein (Fragment) OS=Homo sapiens GN=LOC339290 PE=2 SV=1
    MSQFQGKGPRWTVLIMSKVGLRGGLSDQMAMKVLDPLRQALDSSMQSNNLCQHPQPLALHVSAAVASAGAQASSLLGPLPHLSSFAFQPAHSLLSLLGSHGAEVSKKMALLARERSPAHLVAFPGRLTATPPGLPTF
    null

    Merci pour votre aide.

    PS : Inutile de déplacer dans la partie bioinformatique c'est juste un exemple, les bioinformaticien n'ont pas de format JSON à traiter (ou pas souvent du tout)

  4. #4
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    en regardant un peu la doc pour allow_blessed, j'ai trouvé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If $enable is true (or missing), then the encode method will not barf when it encounters a blessed reference.
     Instead, the value of the convert_blessed option will decide whether null (convert_blessed disabled or no TO_JSON method found)
    dans ton cas, tu as activé convert_blessed mais il n'y a pas de méthode TO_JSON dans ton objet, donc encode renvoie null

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. webService JSON : problème lors de l'appel depuis un autre site
    Par Pat_AfterMoon dans le forum Services Web
    Réponses: 1
    Dernier message: 22/11/2011, 01h22
  2. [JSON] Problème de désérialisation
    Par titi42 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 02/11/2011, 18h09
  3. [XSLT] Convertion XML/JSON
    Par leTiDevDu54 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/06/2010, 16h01
  4. [JSON] Problème de Cast Array en String
    Par helter_skelter dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/10/2009, 12h02
  5. Réponses: 8
    Dernier message: 30/06/2008, 21h06

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