exjsonpath v0.9.0 ExJSONPath

This module implements a JSONPath evaluator.

Link to this section Summary

Functions

Parse and compile a path.

Evaluate JSONPath on given input.

Link to this section Types

Link to this opaque

compiled_path()

(opaque)
compiled_path()
Link to this opaque

op()

(opaque)
op()
Link to this opaque

path_token()

(opaque)
path_token()

Link to this section Functions

Link to this function

compile(path)

compile(String.t()) ::
  {:ok, compiled_path()} | {:error, ExJSONPath.ParsingError.t()}

Parse and compile a path.

Returns a {:ok, compiled_path} on success, {:error, reason} otherwise.

Link to this function

eval(input, jsonpath)

eval(term(), String.t() | compiled_path()) ::
  {:ok, [term()]} | {:error, ExJSONPath.ParsingError.t()}

Evaluate JSONPath on given input.

Returns {:ok, [result1 | results]} on success, {:error, %ExJSONPath.ParsingError{}} otherwise.

Examples

iex> ExJSONPath.eval(%{"a" => %{"b" => 42}}, "$.a.b")

iex> ExJSONPath.eval([%{"v" => 1}, %{"v" => 2}, %{"v" => 3}], "$[?(@.v > 1)].v")

iex> ExJSONPath.eval(%{"a" => %{"b" => 42}}, "$.x.y")