2009-10-09 26 views
9

Tôi muốn sử dụng tập lệnh Perl để lấy dữ liệu JSON và chuyển đổi nó thành tệp XML. Làm thế nào tôi có thể làm điều đó trong Perl?Làm cách nào để phân tích cú pháp JSON trong Perl?

+3

http://json.org/ liên kết đến http://search.cpan.org/search?query=JSON –

+1

Không đặt các thẻ jokey. Nó làm cho nó khó khăn hơn nhiều cho mọi người để tìm câu hỏi và câu trả lời. –

+3

@Alex Reynolds: Một số câu hỏi xứng đáng được trả lời và một số câu hỏi thì không. Cụ thể, các câu hỏi loại * gửi-me-teh-codez * thì không. Đôi khi, tuy nhiên, câu hỏi có thể được tận dụng. Trong trường hợp này, sau khi cân nhắc lần hai, tôi quyết định sửa chữa câu hỏi. Trong tương lai, bạn cũng có thể muốn sửa chữa câu hỏi cũng như chỉnh sửa các thẻ. Đối với thái độ của tôi là khi một câu hỏi nên được cố định so với trái để làm mòn, hãy xem http://meta.stackexchange.com/questions/24838/are-you-less-likely-to-down-vote-someone-whose- gravatar-is-a-photograph-of-them/24862 # 24862 –

Trả lời

10

Install: XML::XML2JSON với

sudo CPAN XML :: XML2JSON

và sau đó thử:

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

Đó là tất cả - dữ liệu JSON của bạn được phân tách và lưu trữ trong $ deserialized.

+4

Nếu hiệu suất là một mối quan tâm, cũng cài đặt JSON :: XS (JSON sẽ sử dụng nó nếu nó ở đó ... không cần thay đổi mã). – ysth

+0

Điều đó không tạo ra XML. – LeeGee

+0

Vâng, chắc chắn nó không. Không có thông tin về cách xml nên xem xét (ví dụ: thuộc tính nên là gì và thẻ nào), vì vậy không thể xây dựng xml dữ liệu không có đặc tả lược đồ. Nếu lược đồ là "bất kỳ, chỉ cần làm cho nó hợp lệ" - 'sử dụng XML :: Đơn giản; in XMLout ($ deserialized); ' –

Các vấn đề liên quan