Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.101.0/docs/apis/_sources/json_path_protocol_0.rst.txt

.. index:: single: json_path_protocol .. _json_path_protocol/0:

.. rst-class:: right

protocol

json_path_protocol

JSONPath parser, generator, and evaluator protocol.

| Availability: | logtalk_load(json_path(loader))

| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-07-03

| Compilation flags: | static

| Dependencies: | (none)

| Remarks: | (none)

| Inherited public predicates: | (none)

.. contents:: :local: :backlinks: top

Public predicates

.. index:: parse/2 .. _json_path_protocol/0::parse/2:

parse/2 ^^^^^^^^^^^

Parses a JSONPath query from the given source (codes(Codes), chars(Chars), or atom(Atom)) into a parsed query term. Fails if the query cannot be parsed.

| Compilation flags: | static

| Template: | parse(Source,Query) | Mode and number of proofs: | parse(++compound,--compound) - zero_or_one_or_error

| Exceptions: | Source is a variable: | instantiation_error | Source is neither a variable nor a valid source: | domain_error(json_path_source,Source)


.. index:: generate/2 .. _json_path_protocol/0::generate/2:

generate/2 ^^^^^^^^^^^^^^

Generates a JSONPath query using the representation specified in the first argument (codes(Codes), chars(Chars), or atom(Atom)) for the parsed query term in the second argument.

| Compilation flags: | static

| Template: | generate(Sink,Query) | Mode and number of proofs: | generate(+compound,++compound) - one_or_error

| Exceptions: | Sink is a variable: | instantiation_error | Query is neither a variable nor a valid parsed query term: | domain_error(json_path_query,Query) | Sink cannot be generated: | domain_error(json_path_sink,Sink)


.. index:: evaluate/3 .. _json_path_protocol/0::evaluate/3:

evaluate/3 ^^^^^^^^^^^^^^

Evaluates a parsed JSONPath query against a JSON term and returns the selected values.

| Compilation flags: | static

| Template: | evaluate(Query,JSON,Values) | Mode and number of proofs: | evaluate(++compound,++term,--list) - zero_or_one_or_error

| Exceptions: | Query is a variable: | instantiation_error | JSON is a variable: | instantiation_error | Query is neither a variable nor a valid parsed query term: | domain_error(json_path_query,Query)


.. index:: paths/3 .. _json_path_protocol/0::paths/3:

paths/3 ^^^^^^^^^^^

Evaluates a parsed JSONPath query against a JSON term and returns the selected normalized paths.

| Compilation flags: | static

| Template: | paths(Query,JSON,Paths) | Mode and number of proofs: | paths(++compound,++term,--list) - zero_or_one_or_error

| Exceptions: | Query is a variable: | instantiation_error | JSON is a variable: | instantiation_error | Query is neither a variable nor a valid parsed query term: | domain_error(json_path_query,Query)


.. index:: nodes/3 .. _json_path_protocol/0::nodes/3:

nodes/3 ^^^^^^^^^^^

Evaluates a parsed JSONPath query against a JSON term and returns the selected nodes as node(Path, Value) terms.

| Compilation flags: | static

| Template: | nodes(Query,JSON,Nodes) | Mode and number of proofs: | nodes(++compound,++term,--list) - zero_or_one_or_error

| Exceptions: | Query is a variable: | instantiation_error | JSON is a variable: | instantiation_error | Query is neither a variable nor a valid parsed query term: | domain_error(json_path_query,Query)


.. index:: query/3 .. _json_path_protocol/0::query/3:

query/3 ^^^^^^^^^^^

Parses a JSONPath query source and evaluates it against a JSON term, returning the selected values.

| Compilation flags: | static

| Template: | query(Source,JSON,Values) | Mode and number of proofs: | query(++compound,++term,--list) - zero_or_one_or_error

| Exceptions: | Source is a variable: | instantiation_error | JSON is a variable: | instantiation_error | Source is neither a variable nor a valid source: | domain_error(json_path_source,Source)


Protected predicates

(none)

Private predicates

(none)

Operators

(none)