json/doc/mkdocs/docs/api/json_pointer/json_pointer.md
Florian Albrechtskirchinger 616caea27a
Re-template json_pointer on string type (#3415)
* Make exception context optional

Change exception context parameter to pointer and replace context with
nullptr where appropriate.

* Support escaping other string types

* Add string concatenation function

Add variadic concat() function for concatenating char *, char, and
string types.

* Replace string concatenations using + with concat()

* Template json_pointer on string type

Change json_pointer from being templated on basic_json to being
templated on string type.

* Add unit test for #3388

Closes #3388.

* Fix regression test for #2958

* Add backwards compatibility with json_pointer<basic_json>

* Update json_pointer docs

* Allow comparing different json_pointers

* Update version numbers
2022-04-12 14:18:16 +02:00

1.2 KiB

nlohmann::json_pointer::json_pointer

explicit json_pointer(const string_t& s = "");

Create a JSON pointer according to the syntax described in Section 3 of RFC6901.

Parameters

s (in)
string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value

Exceptions

  • Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  • Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.

Examples

??? example

The example shows the construction several valid JSON pointers as well as the exceptional behavior.
 
```cpp
--8<-- "examples/json_pointer.cpp"
```

Output:

```json
--8<-- "examples/json_pointer.output"
```

Version history

  • Added in version 2.0.0.
  • Changed type of s to string_t in version 3.11.0.