Jaxon v2.0.2 Jaxon.Path View Source
Utility module for parsing and encoding JSON path expressions.
Link to this section Summary
Link to this section Types
Link to this section Functions
Link to this function
encode(path)
View Sourceencode(t()) :: {:ok, String.t()} | {:error, Jaxon.EncodeError.t()}
Encoding path expressions:
iex> Jaxon.Path.encode([:root, "test", 0])
{:ok, "$.test[0]"}
iex> Jaxon.Path.encode([:root, "with space", "other", "more space", 0])
{:ok, ~s($["with space"].other["more space"][0])}
How to handle encode errors:
iex> Jaxon.Path.encode([:root, :whoops, "test", 0])
{:error, %Jaxon.EncodeError{message: "`:whoops` is not a valid JSON path segment"}}
Link to this function
parse(bin)
View Sourceparse(String.t()) :: {:ok, t()} | {:error, Jaxon.ParseError.t()}
Parse path expressions:
iex> Jaxon.Path.parse("$[*].pets[0]")
{:ok, [:root, :all, "pets", 0]}
iex> Jaxon.Path.parse(~s($["key with spaces"].pets[0]))
{:ok, [:root, "key with spaces", "pets", 0]}
How to handle parse errors;
iex> Jaxon.Path.parse("$.\"test[x]")
{:error, %Jaxon.ParseError{message: "Ending quote not found for string at `\"test[x]`"}}
Parse path expressions:
iex> Jaxon.Path.parse!("$[*].pets[0]")
[:root, :all, "pets", 0]