2009-10-09 18 views
9

Quiero utilizar un script Perl que obtenga los datos JSON y los convierta en un archivo XML. ¿Cómo puedo hacer eso en Perl?¿Cómo puedo analizar JSON en Perl?

+3

http://json.org/ enlaces a http://search.cpan.org/search?query=JSON –

+1

No poner en etiquetas jokey. Hace que sea mucho más difícil para las personas encontrar preguntas y respuestas. –

+3

@Alex Reynolds: algunas preguntas merecen respuestas y otras no. Específicamente, las preguntas del tipo * send-me-teh-codez * no. A veces, sin embargo, la pregunta puede rescatarse. En este caso, después de una segunda consideración, decidí arreglar la pregunta. En el futuro, es posible que también desee corregir la pregunta y editar las etiquetas. En cuanto a mi actitud en cuanto a cuándo una pregunta debe ser fijada versus izquierda a languidecer, vea http://meta.stackexchange.com/questions/24838/are-you-less-likely-to-down-vote-someone-whose- gravatar-es-una-fotografía-de-ellos/24862 # 24862 –

Respuesta

10

Instalar: XML::XML2JSON con

sudo CPAN XML :: XML2JSON

y luego tratar:

use XML::XML2JSON; 
my $JSON = '{"entry":{"name":"Douglas Crockford","phone":"555 123 456"}}'; 
my $XML2JSON = XML::XML2JSON->new(); 
my $Obj = $XML2JSON->json2obj($JSON); 
my $XML = $XML2JSON->obj2xml($Obj); 
print $XML; 
14
use JSON; 

my $json_string = '................'; 

my $deserialized = from_json($json_string); 

Eso es todo - sus datos JSON se analiza y almacena en $ deserializado.

+4

Si el rendimiento es en absoluto una preocupación, también instale JSON :: XS (JSON lo usará si está allí ... no se necesitan cambios de código). – ysth

+0

Eso no produce XML. – LeeGee

+0

Bueno, seguro que no. No hay información sobre cómo debe verse el xml (por ejemplo, qué atributo debe ser y qué etiqueta), por lo que es imposible crear xml de los datos sin la especificación del esquema. Si el esquema es "any, simplemente hágalo válido" - 'use XML :: Simple; print XMLout ($ deserialized); ' –