2009-10-09 24 views
9

Voglio usare lo script Perl che ottiene i dati JSON e li converte in file XML. Come posso farlo in Perl?Come posso analizzare JSON in Perl?

+3

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

+1

Non inserire tag jokey. Rende molto più difficile per le persone trovare domande e risposte. –

+3

@Alex Reynolds: alcune domande meritano risposte e altre no. In particolare, * send-me-teh-codez * tipo domande non lo fanno. A volte, tuttavia, la domanda può essere recuperata. In questo caso, dopo una seconda considerazione, ho deciso di sistemare la domanda. In futuro, potresti anche voler correggere la domanda e modificare i tag. Per quanto riguarda il mio atteggiamento riguardo a quando una domanda dovrebbe essere risolta contro sinistra per languire, vedi http://meta.stackexchange.com/questions/24838/are-you-less-likely-to-down-vote-someone-whose- gravatar-is-a-photograph-of-them/24862 # 24862 –

risposta

10

Installare: XML::XML2JSON con

sudo cpan XML :: XML2JSON

e quindi provare:

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); 

Questo è tutto - i dati JSON viene analizzato e conservato in $ deserialized.

+4

Se le prestazioni sono un problema, installa anche JSON :: XS (JSON lo userà se è lì ... non sono necessarie modifiche al codice). – ysth

+0

Questo non produce XML. – LeeGee

+0

Beh, certo che no. Non ci sono informazioni su come dovrebbe apparire l'xml (ad esempio: quale dovrebbe essere l'attributo e quale tag), quindi è impossibile creare xml di dati senza specifiche dello schema. Se lo schema è "qualsiasi, basta renderlo valido" - 'use XML :: Simple; stampa XMLout ($ deserializzato); ' –