mirror of
https://github.com/nlohmann/json.git
synced 2026-10-02 15:05:16 +00:00
- API pages for basic_json_document and basic_json_view, one per member, and for the four aliases, each with an example - features/json_view.md: the problem the view solves, ownership and lifetime, what matches basic_json::parse() and what differs, and when to choose json, ordered_json, SAX, or the view - the examples show why one would use the view, not only how: borrowed vs. owned input, reading a few fields and materializing one subtree, reusing a document across many messages - registered in the mkdocs navigation, llms.txt, the docset, the exceptions page (out_of_range.416), architecture.md, the integration page, and the README; the yyjson credit is added to the README and license.md Signed-off-by: Niels Lohmann <mail@nlohmann.me>
1.9 KiB
1.9 KiB
nlohmann::basic_json::is_primitive
constexpr bool is_primitive() const noexcept;
This function returns #!cpp true if and only if the JSON type is primitive (string, number, boolean, #!json null,
binary).
Return value
#!cpp true if type is primitive (string, number, boolean, #!json null, or binary), #!cpp false otherwise.
Exception safety
No-throw guarantee: this member function never throws exceptions.
Complexity
Constant.
Possible implementation
constexpr bool is_primitive() const noexcept
{
return is_null() || is_string() || is_boolean() || is_number() || is_binary();
}
Notes
The term primitive stems from RFC 8259:
JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).
This library extends primitive types to binary types, because binary types are roughly comparable to strings. Hence,
is_primitive() returns #!cpp true for binary values.
Examples
??? example
The following code exemplifies `is_primitive()` for all JSON types.
```cpp
--8<-- "examples/is_primitive.cpp"
```
Output:
```json
--8<-- "examples/is_primitive.output"
```
See also
- is_structured() returns whether the JSON value is structured
- is_null() returns whether the JSON value is
null - is_string() returns whether the JSON value is a string
- is_boolean() returns whether the JSON value is a boolean
- is_number() returns whether the JSON value is a number
- is_binary() returns whether the JSON value is a binary array
- basic_json_view::is_primitive - the same check on a zero-copy view
Version history
- Added in version 1.0.0.
- Extended to return
#!cpp truefor binary types in version 3.8.0.