JSON-LINQ
view release on metacpan or search on metacpan
doc/json_linq_cheatsheet.MY.txt view on Meta::CPAN
======================================================================
JSON::LINQ á¡áá¼ááºááá¯á¸áá¬á¸áá»áẠ[MY] áá¼ááºáá¬áá¬áá¬
======================================================================
[ 1. áá±á¸áá¼ááºá¸áá¾á¯ áááºáá®á¸áá¼ááºá¸ ]
use JSON::LINQ;
# JSON ááá¯ááºáá¾ (á¡áááºáá¯á¶á¸ array)
my $q = JSON::LINQ->FromJSON('data.json');
# JSONL ááá¯ááºáá¾ (streaming)
my $q = JSON::LINQ->FromJSONL('events.jsonl');
# JSON string áá¾
my $q = JSON::LINQ->FromJSONString('[{"id":1},{"id":2}]');
# LTSV ááá¯ááºáá¾ (label:value, TAB-ááá¯ááºá¸áá¼á¬á¸, streaming)
my $q = JSON::LINQ->FromLTSV('data.ltsv');
# CSV ááá¯ááºáá¾ (áááá¡áááºá¸ = áá±á«ááºá¸á
ááºá streaming)
my $q = JSON::LINQ->FromCSV('data.csv');
my $q = JSON::LINQ->FromCSV('data.csv', sep => "\t"); # TSV
my $q = JSON::LINQ->FromCSV('f.csv', headers=>[qw(a b c)]); # áá±á«ááºá¸á
ááºááá«
my $q = JSON::LINQ->FromCSV('f.csv', headers=>[qw(a b c)], skip_header=>1);
# Memory áá² array áá¾
my $q = JSON::LINQ->From(\@array);
# ááᬠsequence
my $q = JSON::LINQ->Empty();
# ááááºá¸áá¼áá·áº sequence: 1, 2, 3, 4, 5
my $q = JSON::LINQ->Range(1, 5);
# áá¼ááºá
áẠN áá¼ááẠáááºáá«ááá²áá²
my $q = JSON::LINQ->Repeat("x", 3);
# áá¾ááºáá»ááº: Terminal method áá±á«áºáá¼á®á¸áá±á¬áẠiterator áá¯ááºáááºá
# áá¼ááºáá±á¸ááẠFrom*/From ááᯠáááºáá±á«áºáá«á
[ 2. á
á
áºáá¯ááºáá¼ááºá¸ ]
->Where(sub { $_[0]{status} eq '200' })
->Where(sub { $_[0]{score} >= 80 })
->Where(sub { defined $_[0]{email} && $_[0]{email} ne '' })
[ 3. áá¯á¶á
á¶áá¼á±á¬ááºá¸áá¼ááºá¸ ]
# Select: áá¼ááºá
ááºáá
áºáá¯áá»ááºá¸ááᯠáá¼á±á¬ááºá¸áá²áá«
->Select(sub { { path => $_[0]{url}, code => $_[0]{status} } })
->Select(sub { $_[0]{name} })
# SelectMany: Nested array áá¼áá·áºáá« (selector ááẠARRAY ref áá¼ááºááááº)
->SelectMany(sub { [ @{ $_[0]{tags} } ] })
[ 4. á
á®á
á
áºáá¼ááºá¸ ]
# ááá key -- smart (áá¾á
áºáááºáá¯á¶á¸ ááááºá¸ááá¬ááºá¸áá¾áá·áº áá°áá»á¾áẠááááºá¸ááá¬ááºá¸áá¼áá·áº)
->OrderBy(sub { $_[0]{name} })
->OrderByDescending(sub { $_[0]{score} })
# ááá key -- ááááºá¸ááá¬ááºá¸ áá¾áá¯ááºá¸áá¾ááºáá¾á¯ á¡áááºá¸
->OrderByNum(sub { $_[0]{price} })
->OrderByNumDescending(sub { $_[0]{amount} })
# ááá key -- string áá¾áá¯ááºá¸áá¾ááºáá¾á¯ á¡áááºá¸ (cmp)
->OrderByStr(sub { $_[0]{code} })
->OrderByStrDescending(sub { $_[0]{name} })
# áá¯ááá key (OrderBy* áá±á¬áẠchain áá»áááºáááº)
->ThenBy(sub { $_[0]{name} }) # smart ascending
->ThenByDescending(sub { $_[0]{score} }) # smart descending
->ThenByNum(sub { $_[0]{age} }) # ááááºá¸ááá¬ááºá¸ ascending
->ThenByNumDescending(sub { $_[0]{age} }) # ááááºá¸ááá¬ááºá¸ descending
->ThenByStr(sub { $_[0]{name} }) # string ascending
->ThenByStrDescending(sub { $_[0]{name} }) # string descending
->Reverse() # áááºáá¾á áá¼áá·áºáá¾á¯áá¾á¯ááᯠáá¼á±á¬ááºá¸áá¼ááº
[ 5. á
á¬áá»ááºáá¾á¬ áá½á²áá¼ááºá¸ ]
( run in 0.963 second using v1.01-cache-2.11-cpan-140bd7fdf52 )