Skip to content

nlohmann::basic_json::is_structured

constexprboolis_structured()constnoexcept;

This function returns true if and only if the JSON type is structured (array or object).

Return value

true if type is structured (array or object), false otherwise.

Exception safety

No-throw guarantee: this member function never throws exceptions.

Complexity

Constant.

Possible implementation

constexprboolis_structured()constnoexcept
{
returnis_array()||is_object();
}

Notes

The term structured stems from RFC 8259:

JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

Note that though strings are containers in C++, they are treated as primitive values in JSON.

Examples

Example

The following code exemplifies is_structured() for all JSON types.

#include<iostream>
#include<nlohmann/json.hpp>
usingjson=nlohmann::json;
intmain()
{
// create JSON values
jsonj_null;
jsonj_boolean=true;
jsonj_number_integer=17;
jsonj_number_float=23.42;
jsonj_number_unsigned_integer=12345678987654321u;
jsonj_object={{"one",1},{"two",2}};
jsonj_array={1,2,4,8,16};
jsonj_string="Hello, world";
jsonj_binary=json::binary({1,2,3});
// call is_structured()
std::cout<<std::boolalpha;
std::cout<<j_null.is_structured()<<'\n';
std::cout<<j_boolean.is_structured()<<'\n';
std::cout<<j_number_integer.is_structured()<<'\n';
std::cout<<j_number_unsigned_integer.is_structured()<<'\n';
std::cout<<j_number_float.is_structured()<<'\n';
std::cout<<j_object.is_structured()<<'\n';
std::cout<<j_array.is_structured()<<'\n';
std::cout<<j_string.is_structured()<<'\n';
std::cout<<j_binary.is_structured()<<'\n';
}

Output:

false
false
false
false
false
true
true
false
false

See also

Version history

  • Added in version 1.0.0.

AltStyle によって変換されたページ (->オリジナル) /