JSON-LINQ
view release on metacpan or search on metacpan
doc/json_linq_cheatsheet.KO.txt view on Meta::CPAN
======================================================================
JSON::LINQ ì¹í¸ìí¸ [KO] íêµì´
======================================================================
[ 1. 쿼리 ìì± ]
use JSON::LINQ;
# JSON íì¼ìì ì½ê¸° (ìµìì ë°°ì´)
my $q = JSON::LINQ->FromJSON('data.json');
# JSONL íì¼ìì ì½ê¸° (ì¤ë¹ íëì JSON ê°ì²´, ì¤í¸ë¦¬ë°)
my $q = JSON::LINQ->FromJSONL('events.jsonl');
# JSON 문ìì´ìì
my $q = JSON::LINQ->FromJSONString('[{"id":1}]');
# FromLTSV: read an LTSV file (label:value, TAB-separated, streaming)
my $q = JSON::LINQ->FromLTSV('data.ltsv');
# FromCSV: CSV íì¼ ì½ê¸° (첫 í = í¤ë, ì¤í¸ë¦¬ë°)
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);
# ë©ëª¨ë¦¬ ë°°ì´ìì
my $q = JSON::LINQ->From(\@array);
# ë¹ ìíì¤
my $q = JSON::LINQ->Empty();
# ì ì ìíì¤: 1, 2, 3, 4, 5
my $q = JSON::LINQ->Range(1, 5);
[ 2. íí°ë§ ]
->Where(sub { $_[0]{status} eq '200' })
->Where(sub { $_[0]{score} >= 80 })
[ 3. íë¡ì ì
]
->Select(sub { $_[0]{name} })
->SelectMany(sub { [ @{ $_[0]{tags} } ] })
[ 4. ì ë ¬ ]
->OrderBy(sub { $_[0]{name} }) # ì¤ë¦ì°¨ì (ì¤ë§í¸)
->OrderByDescending(sub { $_[0]{score} }) # ë´ë¦¼ì°¨ì (ì¤ë§í¸)
->OrderByNum(sub { $_[0]{price} }) # ì«ì ì¤ë¦ì°¨ì
->ThenBy(sub { $_[0]{name} }) # ë³´ì¡° ì ë ¬ ì¤ë¦ì°¨ì
->Reverse() # ìì
[ 5. íì´ì§ ]
->Skip(10) # ì²ì 10ê° ê±´ëë
->Take(5) # ë¤ì 5ê° ê°ì ¸ì´
[ 6. 그룹í ]
my @groups = $q->GroupBy(sub { $_[0]{category} })->ToArray();
my $lookup = $q->ToLookup(sub { $_[0]{dept} });
[ 7. ì§ê³ (í°ë¯¸ë ë©ìë) ]
->Count() # ìì ì
->Sum(sub { $_[0]{amount} }) # í©ê³
->Average(sub { $_[0]{score} }) # íê· (ë¹ ê²½ì° die)
->Min(sub { $_[0]{price} }) # ìµìê°
->Max(sub { $_[0]{price} }) # ìµëê°
->First() ->FirstOrDefault() # 첫 ë²ì§¸ ìì
->Any() ->All(sub { ... }) # íì ì¬
->ForEach(sub { print $_[0] }) # ê° ìì ì¤í
[ 8. ì¶ë ¥ ë©ìë ]
->ToJSON('output.json') # JSON ë°°ì´ íì¼ë¡ ì¶ë ¥
->ToJSONL('output.jsonl') # JSONL íì¼ë¡ ì¶ë ¥
->ToLTSV('output.ltsv') # write as LTSV file (all keys, alphabetical)
->ToLTSV('out.ltsv', label_order=>[qw(a b c)]) # emit specified labels in order
->ToLTSV('out.ltsv', headers =>[qw(a b c)]) # alias for label_order
->ToCSV('output.csv') # CSV íì¼ë¡ ì¶ë ¥ (ì ì²´ í¤, ìíë²³ì)
( run in 0.707 second using v1.01-cache-2.11-cpan-140bd7fdf52 )