A tiny functional language for querying and manipulating JSON, like sed but for JSON data.
jl (JSON lambda) is a command-line tool that provides a tiny functional language for querying and manipulating JSON data. It enables developers to perform complex transformations, filtering, and extraction on JSON streams using a concise syntax inspired by functional programming. It solves the problem of verbose or awkward JSON processing in shell pipelines by offering a dedicated, expressive language.
Developers and data engineers who work with JSON in command-line environments and need a powerful, scriptable tool for data transformation. It's particularly useful for those familiar with functional programming concepts who prefer composable operations over imperative scripts.
Developers choose jl for its minimal, functional approach to JSON processing, which reduces boilerplate compared to tools like jq or custom Python scripts. Its Haskell-inspired syntax and stream-oriented design make it uniquely suited for piping JSON data through complex transformations in a Unix-like workflow.
Functional sed for JSON
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers shorthand like _.field for property access and | for function composition, reducing boilerplate compared to verbose JSON processors like jq, as shown in the mini-tutorial.
Built for Unix pipelines, processing JSON line-by-line from stdin, making it seamless to integrate with commands like cat, as demonstrated in examples with --array and --lines flags.
Includes a comprehensive set of functions like map, filter, fold, and zipWith, enabling expressive data transformations without external scripts, detailed in the available functions list.
Provides flags like --array and --lines to toggle between array and line-by-line output, adapting to various pipeline needs, as illustrated in the tutorial examples.
The Haskell-inspired language requires understanding of concepts like lambdas and function composition, creating a barrier for developers used to imperative JSON processors, limiting accessibility.
The README admits that Windows binaries aren't yet available in releases, and installation from source requires the Haskell stack tool, complicating setup for non-Linux users.
With a smaller user base than alternatives like jq, finding examples, tutorials, or troubleshooting help can be challenging, as the README is brief and lacks extensive guides.