How to Use JSON Path

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. fq

    jq for binary formats - tool, language and decoders for working with binary and text formats

    I see, thanks for replying and no worries! yeap some of the "self-describing" formats like msgpack, cbor etc will because of how fq works have to be decoded into something more of a meta-msgpack etc.

    About blobs, if you want to change how (possibly large) binaries are represented as JSON you can use the bits_format options, see https://github.com/wader/fq/blob/master/doc/usage.md#options, so fq -o bits_format=md5 torepr ...

    I can highly recommend to learn jq, it's what makes fq really useful, and as a bonus you will learn jq in general! :)

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. jfq

    JSONata on the command line

    One of the best tools I've found for manipulating JSON via JsonPath syntax is https://jsonata.org

    In addition to simple queries that allow you to select one (or multiple) matching nodes, it also provides some helper functions, such as arithmetic, comparisons, sorting, grouping, datetime manipulation, and aggregation (e.g. sum, max, min).

  4. permit-a38

    Permit A38 - enforce the most ridiculous syntax rules using a declarative rule system.

    I've used JSONPath in a small side project that was supposed to be a linter for TypeScript with JSONPath querying over the abstract.syntax tree:

    https://github.com/Tade0/permit-a38/tree/master

    Ultimately the linting rules proved to be easier to write than read.

  5. regex-translator

    Convert a Regular Expression from one flavour to another.

    As to cross format path querying, I see limited value in such an endeavour; the reason that one deals with such formats is generally because it is used as an interface to configure some tool, but moving across different tools, besides the path queries, even the configuration schemas differ, and having a cross format converter would do you no good. The fact that many such configuration formats support subtly (or drastically) divergent types of objects does this idea no good either.

    Speaking of this topic, I would be very interested in a CLI tool that translated between different dialects of regex. As opposed to general data or configuration, I find the case for cross format conversion very compelling for regexes; the objects that different regex languages deal with are functionally completely identical. I would be very happy to be able to craft a regex to search for something in vim, then convert the regex to grep or use another tool on the shell, then perhaps adapt it to some other scripting languages e.g. Javascript/Ruby/Perl.

    Indeed I am sad that I am not finding any CLI tools (non web-based) for this beyond https://github.com/Anadian/regex-translator . Am hopeful for more suggestions.

  6. rcl

    A reasonable configuration language

  7. json_profile

    Find data bottlenecks in large json objects.

    Not sure if this is a common problem, but I built a tool to help me quickly understand the main schema, and where most of the data is, for a new JSON file given to me. It makes the assumption that sometimes peer elements in a list will have the same structure (eg they'll be objects with similar sets of keys). If that's true, it learns the structure of the file, prints out the heaviest _aggregated_ path (meaning it thinks in terms of a directory-like structure), as well as giving you various size-per-path hints to help introduce yourself to the JSON file:

    https://github.com/tylerneylon/json_profile

  8. specification

    Contains the official specification for the Serverless Workflow Domain Specific Language. It provides detailed guidelines and standards for defining, executing, and managing workflows in serverless environments, ensuring consistency and interoperability across implementations. (by serverlessworkflow)

    Here's a discussion with more comparisons: https://github.com/serverlessworkflow/specification/issues/2...

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. espath

    Query deeply nested JavaScript objects with XPath

    In the past I've used XPath, and CSS selectors using this library to filter and find data in JSON: https://github.com/tomhodgins/espath

    The approach is to take the JavaScript object, convert it to XML DOM, run the query (either using standard XPath, or standard CSS selectors) and then either convert the DOM back into objects, or another way I've seen it done is to keep a register of the original objects and retrieve the original objects.

    In this way, JSON, and any JavaScript object with non-circularity can be sifted and searched and filtered in reliable ways using already-standardized methods just by using those technologies together in a fun new way.

    There is not necessarily a need for inventing a new custom syntax/DSL for querying unless you don't want to make use of CSS and XPath, or have very specific needs.

  11. roast

    🦋 Raku test suite

    The Raku programming language has, with some tweaks:

    data.store.book.grep(.price < 10).map(.title)

    Although personally I would write that as:

    data.store.book.map: { .title if .price < 10 }

    which combines the filter / map into a single operation.

    https://raku.org

  12. unify-jdocs

    A new way of working with JSON documents without using model classes or JSON schemas

    JSONPath is good when it comes to querying large JSON documents. But in my opinion, more than this is the need to simplify reading and writing from JSON documents. We use POJOs / model classes which can become a chore for large JSON documents. While it is possible to read paths, I had not seen any tool using which we could read and write JSON paths in a document without using POJOs. And so I wrote unify-jdocs - read and write any JSON path with a single line of code without ever using POJOs. And also use model documents to replace JSONSchema. You can find this library here -> https://github.com/americanexpress/unify-jdocs.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • jq VS rcl - a user suggested alternative

    2 projects | 15 Mar 2025
  • cue VS rcl - a user suggested alternative

    2 projects | 15 Mar 2025
  • jsonnet VS rcl - a user suggested alternative

    2 projects | 15 Mar 2025
  • nickel VS rcl - a user suggested alternative

    2 projects | 15 Mar 2025
  • dhall VS rcl - a user suggested alternative

    2 projects | 15 Mar 2025

Did you know that JavaScript is
the 3rd most popular programming language
based on number of references?