RFC 6901 JSON Pointer implementation.
Parses JSON Pointer strings into token lists and vice versa,
handling ~0 (tilde) and ~1 (slash) escaping.
Summary
Functions
Escapes a reference token for use in a JSON Pointer string.
~ becomes ~0, / becomes ~1.
Parses a JSON Pointer string into a list of reference tokens.
Converts a list of reference tokens back to a JSON Pointer string.
Unescapes a JSON Pointer reference token.
~1 becomes /, ~0 becomes ~.
Order matters: ~1 must be processed before ~0.
Functions
Escapes a reference token for use in a JSON Pointer string.
~ becomes ~0, / becomes ~1.
Parses a JSON Pointer string into a list of reference tokens.
Examples
iex> A2UI.DataModel.JsonPointer.parse("")
{:ok, []}
iex> A2UI.DataModel.JsonPointer.parse("/")
{:ok, [""]}
iex> A2UI.DataModel.JsonPointer.parse("/foo/bar/0")
{:ok, ["foo", "bar", "0"]}
iex> A2UI.DataModel.JsonPointer.parse("/a~1b/c~0d")
{:ok, ["a/b", "c~d"]}
Converts a list of reference tokens back to a JSON Pointer string.
Examples
iex> A2UI.DataModel.JsonPointer.to_string([])
""
iex> A2UI.DataModel.JsonPointer.to_string(["foo", "bar"])
"/foo/bar"
iex> A2UI.DataModel.JsonPointer.to_string(["a/b", "c~d"])
"/a~1b/c~0d"
Unescapes a JSON Pointer reference token.
~1 becomes /, ~0 becomes ~.
Order matters: ~1 must be processed before ~0.