Files
json/api/json_pointer.md
T
2026-10-03 05:43:12 +00:00

3.2 KiB

nlohmann::json_pointer

template<typename RefStringType>
class json_pointer;

A JSON pointer defines a string syntax for identifying a specific value within a JSON document. It can be used with functions at and operator[]. Furthermore, JSON pointers are the base for JSON patches.

Template parameters

RefStringType
the string type used for the reference tokens making up the JSON pointer

!!! warning "Deprecation"

For backwards compatibility `RefStringType` may also be a specialization of [`basic_json`](../basic_json/index.md)
in which case `string_t` will be deduced as [`basic_json::string_t`](../basic_json/string_t.md). This feature is
deprecated and may be removed in a future major version.

See the [migration guide](../../integration/migration_guide.md#json-pointers) for how to update existing code.

A JSON pointer is internally a sequence of reference tokens. front, pop_front, and push_front act on the first reference token, whereas back, pop_back, and push_back act on the last one. parent_pointer returns a new JSON pointer with the last reference token removed (like a non-mutating pop_back):

flowchart LR
    A["a"] --> B["b"] --> C["c"]

    front["front() / pop_front() / push_front()"] -.-> A
    back["back() / pop_back() / push_back()"] -.-> C
    parent["parent_pointer() returns /a/b"] -.-> B

The diagram shows the reference tokens of the JSON pointer /a/b/c.

Member types

  • string_t - the string type used for the reference tokens

Member functions

  • (constructor)
  • to_string - return a string representation of the JSON pointer
  • operator string_t - return a string representation of the JSON pointer (deprecated)
  • operator== - compare: equal
  • operator!= - compare: not equal
  • operator<=> - compare: 3-way (C++20)
  • operator/= - append to the end of the JSON pointer
  • operator/ - create JSON Pointer by appending
  • parent_pointer - returns the parent of this JSON pointer
  • pop_back - remove the last reference token
  • back - return last reference token
  • push_back - append an unescaped token at the end of the pointer
  • pop_front - remove the first reference token
  • front - return first reference token
  • push_front - append an unescaped token at the start of the pointer
  • empty - return whether the pointer points to the root document

Literals

See also

Version history

  • Added in version 2.0.0.
  • Changed template parameter from basic_json to string type in version 3.11.0.