Template Class serializer
Defined in File json.hpp
Class Documentation
-
template<typename BasicJsonType>
class serializer Public Functions
-
inline serializer(output_adapter_t<char> s, const char ichar, error_handler_t error_handler_ = error_handler_t::strict)
- Parameters:
s – [in] output stream to serialize to
ichar – [in] indentation character to use
error_handler_ – [in] how to react on decoding errors
-
serializer(const serializer&) = delete
-
serializer &operator=(const serializer&) = delete
-
serializer(serializer&&) = delete
-
serializer &operator=(serializer&&) = delete
-
~serializer() = default
-
inline void dump(const BasicJsonType &val, const bool pretty_print, const bool ensure_ascii, const unsigned int indent_step, const unsigned int current_indent = 0)
internal implementation of the serialization function
This function is called by the public member function dump and organizes the serialization internally. The indentation level is propagated as additional parameter. In case of arrays and objects, the function is called recursively.
strings and object keys are escaped using
escape_string()integer numbers are converted implicitly via
operator<<floating-point numbers are converted to a string using
"g"formatbinary values are serialized as objects containing the subtype and the byte array
- Parameters:
val – [in] value to serialize
pretty_print – [in] whether the output shall be pretty-printed
ensure_ascii – [in] If ensure_ascii is true, all non-ASCII characters in the output are escaped with
\uXXXXsequences, and the result consists of ASCII characters only.indent_step – [in] the indent level
current_indent – [in] the current indent level (only used internally)
- inline for (std::size_t i=0;i< s.size();++i)
- inline if (JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT))
Public Members
-
JSON_PRIVATE_UNLESS_TESTED __pad0__
- JSON_PRIVATE_UNLESS_TESTED const bool ensure_ascii {std::uint32_t codepoint{}
-
std::uint8_t state = UTF8_ACCEPT
-
std::size_t bytes = 0
-
std::size_t bytes_after_last_accept = 0
-
std::size_t undumped_chars = 0
- else
- enable_if_t< std::is_signed< NumberType >::value, int > = 0>bool is_negative_number(NumberType x){return x < 0;}template < typename NumberType
- enable_if_t< std::is_unsigned< NumberType >::value, int > = 0 >bool is_negative_number(NumberType ){return false;}template < typename NumberType
- *a *(hopefully) large enough character buffer std the locale const std::lconv * loc = nullptr
- *the locale s thousand separator character const char thousands_sep = '\0'
- *the locale s decimal point character const char decimal_point = '\0'
- *string buffer std::array< char, 512 > string_buffer = {{}}
- *the indentation character const char indent_char
- *the indentation string string_t indent_string
- *error_handler how to react on decoding errors const error_handler_t error_handler
-
inline serializer(output_adapter_t<char> s, const char ichar, error_handler_t error_handler_ = error_handler_t::strict)