JSON-LINQ
view release on metacpan or search on metacpan
doc/json_linq_cheatsheet.FR.txt view on Meta::CPAN
======================================================================
JSON::LINQ Aide-mémoire [FR] Français
======================================================================
[ 1. 1. Création de requêtes ]
use JSON::LINQ;
my $q = JSON::LINQ->FromJSON('data.json');
my $q = JSON::LINQ->FromJSONL('events.jsonl');
my $q = JSON::LINQ->FromJSONString('[{"id":1}]');
# From an LTSV file (label:value, TAB-separated, streaming)
my $q = JSON::LINQ->FromLTSV('data.ltsv');
# Depuis un fichier CSV (1ère ligne = en-tête, 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)]); # sans en-tête
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();
my $q = JSON::LINQ->Range(1, 5);
my $q = JSON::LINQ->Repeat('x', 3);
[ 2. 2. Filtrage ]
->Where(sub { $_[0]{status} eq '200' })
->Where(sub { $_[0]{score} >= 80 })
[ 3. 3. Projection ]
->Select(sub { $_[0]{name} })
->SelectMany(sub { [ @{ $_[0]{tags} } ] })
[ 4. 4. Tri ]
->OrderBy(sub { $_[0]{name} })
->OrderByDescending(sub { $_[0]{score} })
->OrderByNum(sub { $_[0]{price} })
->OrderByStr(sub { $_[0]{code} })
->ThenBy(sub { $_[0]{name} })
->Reverse()
[ 5. 5. Pagination ]
->Skip(10) ->Take(5)
->SkipWhile(sub { ... }) ->TakeWhile(sub { ... })
[ 6. 6. Regroupement ]
my @g = $q->GroupBy(sub { $_[0]{cat} })->ToArray();
my $l = $q->ToLookup(sub { $_[0]{dept} });
[ 7. 7. Agrégation (méthodes terminales) ]
->Count() ->Sum(sub { $_[0]{v} }) ->Average(sub { ... })
->Min(sub { ... }) ->Max(sub { ... })
->First() ->FirstOrDefault()
->Last() ->LastOrDefault()
->Any() ->All(sub { ... })
->ForEach(sub { ... }) ->Aggregate($s, sub { ... })
[ 8. 8. Opérations sur ensembles ]
->Distinct() ->Union($q2) ->Intersect($q2) ->Except($q2)
->SequenceEqual($q2)
[ 9. 9. Conversion ]
->ToJSON('out.json') ->ToJSONL('out.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') # écriture CSV (toutes clés, alphabétique)
->ToCSV('out.csv', headers =>[qw(a b c)]) # colonnes spécifiées dans l'ordre
( run in 0.697 second using v1.01-cache-2.11-cpan-140bd7fdf52 )