2008-09-25 6 views
4

Où puis-je trouver un module Perl pour convertir une structure de données Perl en une structure JavaScript?Où puis-je trouver un module Perl pour convertir une structure de données Perl en une structure JavaScript?

par exemple. ceci est mon code (Mason):

% # convert our @cti data structure into a javascript one 
    var cti = [ 
% foreach my $cti_category (@cti) { 
      { 
       label: "<% $cti_category->{'label'} %>", 
       value: "<% $cti_category->{'value'} %>", 
       children: [ 
%  foreach my $cti_type (@{$cti_category->{'children'}}) { 
          { 
           label: "<% $cti_type->{'label'} %>", 
           value: "<% $cti_type->{'value'} %>", 
          }, 
%  } 
          ] 
      }, 
% } 
      ]; 

Y at-il un module pour cela?

+0

Maintenant que tout le monde a dit JSON, pourquoi ne pas ajouter le tag json à votre question? : D – skiphoppy

+0

Là, j'ai ajouté le tag JSON. –

Répondre

7

Consultez JSON ou JSON::XS. Pour développer un peu plus, JSON est "JavaScript Object Notation", et les deux modules ci-dessus convertissent les structures de données Perl dans ce format.

0

JSON!

Ce module convertit les structures de données Perl en JSON et vice versa en utilisant JSON :: XS ou JSON :: PP.

0

Le module JSON va convertir les structures de données - il s'agit essentiellement d'un sérialiseur JSON.

15

JSON est l'acronyme de JavaScript Object Notation, qui est le format que vous recherchez.

Malheureusement, aucun des modules que vous recherchez ne se trouve dans le noyau Perl, mais ils sont disponibles sur CPAN, comme le montrera un rapide search.

Je vous recommande d'installer effectivement JSON::Any comme emballage, ainsi que JSON::XS (si vous avez un compilateur C) ou l'un des JSON et JSON::Syck si vous ne le faites pas. JSON :: Any fournit un interface class au-dessus de plusieurs autres modules JSON (vous pouvez choisir, ou laisser choisir parmi ce qui est installé) quel que soit le module que vous utilisez. De cette façon, si votre code doit être porté ailleurs, et (disons) que la machine cible peut installer JSON :: XS quand vous ne pouvez pas, vous obtenez un boost de performance sans code supplémentaire.

use JSON::Any; 

my $j = JSON::Any->new; 

$json = $j->objToJson($perl_data); 

Comme tel.

Questions connexes