LoginSignup
4
3

More than 5 years have passed since last update.

Data::DumperでJSONの出力メモ

Posted at

PerlでJSONを作る時に、ハッシュから作っても良いのだけども、Data::Dumperを使ってさくっと作る方法をメモ。

sample
use Data::Dumper;

my $data;
for my $hoge ( keys %{$hoge} ) {
    $data->{ $hoge{'uniq_no'} }->{'created_at'}  = $hoge{'created_at'} || '';
    $data->{ $hoge{'uniq_no'} }->{'username'}    = $hoge{'username'} || '';
}

my $dump = Data::Dumper->new( [$data] )->Indent(1)->Terse(1)->Useqq(0)->Sortkeys(sub { [sort {$data->{$b}->{'created_at'} cmp $data->{$a}->{'created_at'}} keys %{$_[0]}] })->Pair(':')->Dump;
$dump =~s/'/"/mg;

Sortkeysの中で無名サブルーチンを使ってソートしているのが、みそです。
あと、「|| ''」とすることで、undefの表示を潰しています。

Useqqを有効にすると2バイト文字がエスケープするため、ここでは無効にし、後から置換で「'」から「"」に変換しています。
ここもData::Dumperのオプションでさくっとできれば良いのだけど、Data::Dumperモジュールの改修以外の方法で、良い案ないかなー。

4
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3