| Renderd7-nightly
    v0.7.0
    | 
JSON Pointer. More...
#include <json.hpp>
| Public Member Functions | |
| json_pointer (const std::string &s="") | |
| create JSON pointer  More... | |
| std::string | to_string () const | 
| return a string representation of the JSON pointer  More... | |
| operator std::string () const | |
| return a string representation of the JSON pointer  More... | |
| json_pointer & | operator/= (const json_pointer &ptr) | 
| append another JSON pointer at the end of this JSON pointer  More... | |
| json_pointer & | operator/= (std::string token) | 
| append an unescaped reference token at the end of this JSON pointer  More... | |
| json_pointer & | operator/= (std::size_t array_idx) | 
| append an array index at the end of this JSON pointer  More... | |
| json_pointer | parent_pointer () const | 
| returns the parent of this JSON pointer  More... | |
| void | pop_back () | 
| remove last reference token  More... | |
| const std::string & | back () const | 
| return last reference token  More... | |
| void | push_back (const std::string &token) | 
| append an unescaped token at the end of the reference pointer  More... | |
| void | push_back (std::string &&token) | 
| append an unescaped token at the end of the reference pointer  More... | |
| bool | empty () const noexcept | 
| return whether pointer points to the root document  More... | |
| Private Member Functions | |
| BasicJsonType & | get_and_create (BasicJsonType &j) const | 
| create and return a reference to the pointed to value  More... | |
| BasicJsonType & | get_unchecked (BasicJsonType *ptr) const | 
| return a reference to the pointed to value  More... | |
| BasicJsonType & | get_checked (BasicJsonType *ptr) const | 
| const BasicJsonType & | get_unchecked (const BasicJsonType *ptr) const | 
| return a const reference to the pointed to value  More... | |
| const BasicJsonType & | get_checked (const BasicJsonType *ptr) const | 
| bool | contains (const BasicJsonType *ptr) const | 
| Static Private Member Functions | |
| static BasicJsonType::size_type | array_index (const std::string &s) | 
| static std::vector< std::string > | split (const std::string &reference_string) | 
| split the string input to reference tokens  More... | |
| static void | replace_substring (std::string &s, const std::string &f, const std::string &t) | 
| replace all occurrences of a substring by another string  More... | |
| static std::string | escape (std::string s) | 
| escape "~" to "~0" and "/" to "~1" | |
| static void | unescape (std::string &s) | 
| unescape "~1" to tilde and "~0" to slash (order is important!) | |
| static void | flatten (const std::string &reference_string, const BasicJsonType &value, BasicJsonType &result) | 
| static BasicJsonType | unflatten (const BasicJsonType &value) | 
| Private Attributes | |
| std::vector< std::string > | reference_tokens | 
| the reference tokens | |
| Friends | |
| json_pointer | operator/ (const json_pointer &lhs, const json_pointer &rhs) | 
| create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer  More... | |
| json_pointer | operator/ (const json_pointer &ptr, std::string token) | 
| create a new JSON pointer by appending the unescaped token at the end of the JSON pointer  More... | |
| json_pointer | operator/ (const json_pointer &ptr, std::size_t array_idx) | 
| create a new JSON pointer by appending the array-index-token at the end of the JSON pointer  More... | |
| bool | operator== (json_pointer const &lhs, json_pointer const &rhs) noexcept | 
| compares two JSON pointers for equality  More... | |
| bool | operator!= (json_pointer const &lhs, json_pointer const &rhs) noexcept | 
| compares two JSON pointers for inequality  More... | |
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.
| 
 | inlineexplicit | 
create JSON pointer
Create a JSON pointer according to the syntax described in Section 3 of RFC6901.
| [in] | s | string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value | 
| parse_error.107 | if the given JSON pointer s is nonempty and does not begin with a slash ( /); see example below | 
| parse_error.108 | if a tilde ( ~) in the given JSON pointer s is not followed by0(representing~) or1(representing/); see example below | 
@liveexample{The example shows the construction several valid JSON pointers as well as the exceptional behavior.,json_pointer}
| 
 | inline | 
return a string representation of the JSON pointer
ptr, it holds: @liveexample{The example shows the result of to_string.,json_pointer__to_string}
| 
 | inline | 
return a string representation of the JSON pointer
ptr, it holds: @liveexample{The example shows the result of to_string.,json_pointer__to_string}
| 
 | inline | 
append another JSON pointer at the end of this JSON pointer
| [in] | ptr | JSON pointer to append | 
@liveexample{The example shows the usage of operator/=.,json_pointer__operator_add}
@complexity Linear in the length of ptr.
| 
 | inline | 
append an unescaped reference token at the end of this JSON pointer
| [in] | token | reference token to append | 
@liveexample{The example shows the usage of operator/=.,json_pointer__operator_add}
@complexity Amortized constant.
| 
 | inline | 
append an array index at the end of this JSON pointer
| [in] | array_idx | array index to append | 
@liveexample{The example shows the usage of operator/=.,json_pointer__operator_add}
@complexity Amortized constant.
| 
 | inline | 
returns the parent of this JSON pointer
@complexity Linear in the length of the JSON pointer.
@liveexample{The example shows the result of parent_pointer for different JSON Pointers.,json_pointer__parent_pointer}
| 
 | inline | 
remove last reference token
empty()@liveexample{The example shows the usage of pop_back.,json_pointer__pop_back}
@complexity Constant.
| out_of_range.405 | if JSON pointer has no parent | 
| 
 | inline | 
return last reference token
empty() @liveexample{The example shows the usage of back.,json_pointer__back}
@complexity Constant.
| out_of_range.405 | if JSON pointer has no parent | 
| 
 | inline | 
append an unescaped token at the end of the reference pointer
| [in] | token | token to add | 
@complexity Amortized constant.
@liveexample{The example shows the result of push_back for different JSON Pointers.,json_pointer__push_back}
| 
 | inline | 
append an unescaped token at the end of the reference pointer
| [in] | token | token to add | 
@complexity Amortized constant.
@liveexample{The example shows the result of push_back for different JSON Pointers.,json_pointer__push_back}
| 
 | inlinenoexcept | 
return whether pointer points to the root document
@complexity Constant.
@exceptionsafety No-throw guarantee: this function never throws exceptions.
@liveexample{The example shows the result of empty for different JSON Pointers.,json_pointer__empty}
| 
 | inlinestaticprivate | 
| [in] | s | reference token to be converted into an array index | 
| parse_error.106 | if an array index begins with '0' | 
| parse_error.109 | if an array index begins not with a digit | 
| out_of_range.404 | if string s could not be converted to an integer | 
| out_of_range.410 | if an array index exceeds size_type | 
| 
 | inlineprivate | 
create and return a reference to the pointed to value
@complexity Linear in the number of reference tokens.
| parse_error.109 | if array index is not a number | 
| type_error.313 | if value cannot be unflattened | 
| 
 | inlineprivate | 
return a reference to the pointed to value
"/this/that" on a null value is equivalent to calling operator[]("this").operator[]("that") on that value, effectively changing the null value to an object.| [in] | ptr | a JSON value | 
@complexity Linear in the length of the JSON pointer.
| parse_error.106 | if an array index begins with '0' | 
| parse_error.109 | if an array index was not a number | 
| out_of_range.404 | if the JSON pointer can not be resolved | 
| 
 | inlineprivate | 
| parse_error.106 | if an array index begins with '0' | 
| parse_error.109 | if an array index was not a number | 
| out_of_range.402 | if the array index '-' is used | 
| out_of_range.404 | if the JSON pointer can not be resolved | 
| 
 | inlineprivate | 
return a const reference to the pointed to value
| [in] | ptr | a JSON value | 
| parse_error.106 | if an array index begins with '0' | 
| parse_error.109 | if an array index was not a number | 
| out_of_range.402 | if the array index '-' is used | 
| out_of_range.404 | if the JSON pointer can not be resolved | 
| 
 | inlineprivate | 
| parse_error.106 | if an array index begins with '0' | 
| parse_error.109 | if an array index was not a number | 
| out_of_range.402 | if the array index '-' is used | 
| out_of_range.404 | if the JSON pointer can not be resolved | 
| 
 | inlineprivate | 
| parse_error.106 | if an array index begins with '0' | 
| parse_error.109 | if an array index was not a number | 
| 
 | inlinestaticprivate | 
split the string input to reference tokens
| parse_error.107 | if the pointer is not empty or begins with '/' | 
| parse_error.108 | if character '~' is not followed by '0' or '1' | 
| 
 | inlinestaticprivate | 
replace all occurrences of a substring by another string
| [in,out] | s | the string to manipulate; changed so that all occurrences of f are replaced with t | 
| [in] | f | the substring to replace with t | 
| [in] | t | the string to replace f | 
| 
 | inlinestaticprivate | 
| [in] | reference_string | the reference string to the current value | 
| [in] | value | the value to consider | 
| [in,out] | result | the result object to insert values to | 
null. | 
 | inlinestaticprivate | 
| [in] | value | flattened JSON | 
| parse_error.109 | if array index is not a number | 
| type_error.314 | if value is not an object | 
| type_error.315 | if object values are not primitive | 
| type_error.313 | if value cannot be unflattened | 
| 
 | friend | 
create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer
| [in] | lhs | JSON pointer | 
| [in] | rhs | JSON pointer | 
@liveexample{The example shows the usage of operator/.,json_pointer__operator_add_binary}
@complexity Linear in the length of lhs and rhs.
| 
 | friend | 
create a new JSON pointer by appending the unescaped token at the end of the JSON pointer
| [in] | ptr | JSON pointer | 
| [in] | token | reference token | 
@liveexample{The example shows the usage of operator/.,json_pointer__operator_add_binary}
@complexity Linear in the length of ptr.
| 
 | friend | 
create a new JSON pointer by appending the array-index-token at the end of the JSON pointer
| [in] | ptr | JSON pointer | 
| [in] | array_idx | array index | 
@liveexample{The example shows the usage of operator/.,json_pointer__operator_add_binary}
@complexity Linear in the length of ptr.
| 
 | friend | 
compares two JSON pointers for equality
| [in] | lhs | JSON pointer to compare | 
| [in] | rhs | JSON pointer to compare | 
@complexity Linear in the length of the JSON pointer
@exceptionsafety No-throw guarantee: this function never throws exceptions.
| 
 | friend | 
compares two JSON pointers for inequality
| [in] | lhs | JSON pointer to compare | 
| [in] | rhs | JSON pointer to compare | 
@complexity Linear in the length of the JSON pointer
@exceptionsafety No-throw guarantee: this function never throws exceptions.