json_pointer — Logtalk 3.100.1

# `json_pointer`

The `json_pointer` library provides predicates for parsing, generating, and evaluating JSON Pointers as specified by RFC 6901:

- https://www.rfc-editor.org/rfc/rfc6901

It supports both the plain string syntax and the URI fragment syntax. Reference tokens can be represented as atoms, `chars(List)`, or `codes(List)`.

## API documentation

Open the ../../apis/library_index.html#json_pointer link in a web browser.

## Loading

To load all entities in this library, load the `loader.lgt` file:

    | ?- logtalk_load(json_pointer(loader)).

## Testing

To test this library predicates, load the `tester.lgt` file:

    | ?- logtalk_load(json_pointer(tester)).

## Representation

The library defines the `json_pointer(_Representation_)` parametric object where `_Representation_` can be one of:

- `atom` - reference tokens are represented as atoms

- `chars` - reference tokens are represented as `chars(List)`

- `codes` - reference tokens are represented as `codes(List)`

When using the default `json_pointer` object, reference tokens are represented as atoms.

## Examples

Parse and evaluate a pointer:

    | ?- json_pointer::parse(atom('/foo/0'), Pointer),
         json_pointer::evaluate(Pointer, {foo-[bar, baz]}, Value).
    Pointer = [foo, '0']
    Value = bar
    yes

Generate a URI fragment representation:

    | ?- json_pointer::generate_fragment(atom(Fragment), ['a b', 'c/d']).
    Fragment = '#/a%20b/c~1d'
    yes