TerraForge3D  2.3.1
3D Terrain And Landscape Generator

◆ flatten()

template<typename BasicJsonType >
static void nlohmann::json_pointer< BasicJsonType >::flatten ( const std::string &  reference_string,
const BasicJsonType &  value,
BasicJsonType &  result 
)
inlinestaticprivate
Parameters
[in]reference_stringthe reference string to the current value
[in]valuethe value to consider
[in,out]resultthe result object to insert values to
Note
Empty objects or arrays are flattened to null.

Definition at line 13405 of file json.hpp.

13408 {
13409 switch (value.type())
13410 {
13412 {
13413 if (value.m_value.array->empty())
13414 {
13415 // flatten empty array as null
13416 result[reference_string] = nullptr;
13417 }
13418
13419 else
13420 {
13421 // iterate array and use index as reference string
13422 for (std::size_t i = 0; i < value.m_value.array->size(); ++i)
13423 {
13424 flatten(reference_string + "/" + std::to_string(i),
13425 value.m_value.array->operator[](i), result);
13426 }
13427 }
13428
13429 break;
13430 }
13431
13433 {
13434 if (value.m_value.object->empty())
13435 {
13436 // flatten empty object as null
13437 result[reference_string] = nullptr;
13438 }
13439
13440 else
13441 {
13442 // iterate object and use keys as reference string
13443 for (const auto &element : *value.m_value.object)
13444 {
13445 flatten(reference_string + "/" + detail::escape(element.first), element.second, result);
13446 }
13447 }
13448
13449 break;
13450 }
13451
13460 default:
13461 {
13462 // add primitive value with its reference string
13463 result[reference_string] = value;
13464 break;
13465 }
13466 }
13467 }
static void flatten(const std::string &reference_string, const BasicJsonType &value, BasicJsonType &result)
Definition: json.hpp:13405
@ number_integer
number value (signed integer)
@ discarded
discarded by the parser callback function
@ binary
binary array (ordered collection of bytes)
@ object
object (unordered set of name/value pairs)
@ number_float
number value (floating-point)
@ number_unsigned
number value (unsigned integer)
@ array
array (ordered collection of values)
@ value
the parser finished reading a JSON value
std::string escape(std::string s)
string escaping as described in RFC 6901 (Sect. 4)
Definition: json.hpp:2558