2009-10-09 16 views
9

Chcę użyć skryptu Perl, który pobiera dane JSON i konwertuje je do pliku XML. Jak mogę to zrobić w Perlu?Jak mogę analizować JSON w Perlu?

+3

http://json.org/ linki do http://search.cpan.org/search?query=JSON –

+1

Nie umieszczaj w znacznikach Jokey. Znacznie utrudnia ludziom znalezienie pytań i odpowiedzi. –

+3

@Alex Reynolds: Niektóre pytania wymagają odpowiedzi, a niektóre nie. W szczególności pytania typu * send-me-teh-codez * nie. Czasami jednak pytanie można uratować. W tym przypadku, po drugim rozważeniu, postanowiłem naprawić to pytanie. W przyszłości możesz również naprawić pytanie i edytować tagi. Jeśli chodzi o mój stosunek do tego, kiedy pytanie powinno zostać ustalone w stosunku do pozostawienia na lewo, zob. Http://meta.stackexchange.com/questions/24838/to-you-nie-pewne-do-down-vote-someone-whose- gravatar-to-a-photograph-of-them/24862 # 24862 –

Odpowiedz

10

Instalacja: XML::XML2JSON z

sudo cpan XML :: XML2JSON

a następnie spróbuj:

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

To wszystko - dane JSON jest przetwarzane i przechowywane w $ deserialized.

+4

Jeśli wydajność jest w ogóle problemem, również zainstaluj JSON :: XS (JSON użyje go, jeśli jest tam ... nie wymaga zmian kodu). – ysth

+0

To nie wytwarza XML. – LeeGee

+0

Cóż, na pewno nie. Nie ma informacji, jak powinien wyglądać xml (na przykład: jaki powinien być atrybut i jaki znacznik), więc niemożliwe jest zbudowanie xml z danych bez specyfikacji schematu. Jeśli schemat jest "any, just make it valid" - "use XML :: Simple; wydrukuj XMLout ($ deserialized); ' –