README
NAME
JSON::Path - Implementation of the JSONPath data structure query language
SYNOPSIS
use JSON::Path;
# Example data.
my $data = {
kitchen => {
drawers => [
{ knife => 'šŖ' },
{ glass => 'š·' },
{ knife => 'š”ļø' },
]
}
};
# A query
my $jp = JSON::Path.new('$.kitchen.drawers[*].knife');
# The first result
dd $jp.value($data); # "šŖ"
# All results.
dd $jp.values($data); # ("šŖ", "š”ļø").Seq
# All paths where the results were found.
dd $jp.paths($data); # ("\$.kitchen.drawers[0].knife",
# "\$.kitchen.drawers[2].knife").Seq
# Interleaved paths and values.
dd $jp.paths-and-values($data);
# ("\$.kitchen.drawers[0].knife", "šŖ",
# "\$.kitchen.drawers[2].knife", "š”ļø").SeqDESCRIPTION
The JSONPath query language was designed for indexing into JSON documents. It plays the same role as XPath does for XML documents.
This module implements JSON::Path. However, it is not restricted to working on JSON input. In fact, it will happily work over any data structure made up of arrays and hashes.
Query Syntax Summary
The following syntax is supported:
A query that is not rooted from $ or specified using .. will be evaluated from the document root (that is, same as an explicit $ at the start).
AUTHORS
Jonathan Worthington
Source can be located at: https://github.com/raku-community-modules/JSON-Path . Comments and Pull Requests are welcome.
COPYRIGHT AND LICENSE
Copyright 2012 - 2024 Jonathan Worthington
Copyright 2024, 2025, 2026 Raku Community
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.