2006年9月30日土曜日

[Perl] JSON::Syck で JSON <=>Object 変換

JSON::Syck の使い方。とても簡単だ。

JSONデータ
{"menu": {
"id": "9999",
"value": "hogehoge",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}

ソースコード
use strict;
use JSON::Syck;

my $str_js = ここにJSONデータ

# json to obj
my $data = JSON::Syck::Load( $str_js );
printf( "menu:id $data->{menu}->{id}\n" );
printf( "menu:value $data->{menu}->{value}\n" );
foreach( @{$data->{menu}->{popup}->{menuitem}} ){
printf( "menu:popup:menuitem:value $_->{value}\n" );
}

# obj to json
my $json = JSON::Syck::Dump( $data );
printf( "json $json\n" );

exit;

実行結果
% perl json_sample.pl
menu:id 9999
menu:value hogehoge
menu:popup:menuitem:value New
menu:popup:menuitem:value Open
menu:popup:menuitem:value Close
json {"menu":{"value":"hogehoge","popup":{"menuitem":[{"value":"New","onclick":"CreateNewDoc()"},{"value"

0 件のコメント: