nlohmann::detail::serializer< BasicJsonType > Class Template Reference

`#include <json.hpp>`

Collaboration diagram for nlohmann::detail::serializer< BasicJsonType >:

## Public Member Functions

| serializer (output_adapter_t< char > s, const char ichar, error_handler_t error_handler_=error_handler_t::strict)
| serializer (const serializer &)=delete
serializer & | operator= (const serializer &)=delete
| serializer (serializer &&)=delete
serializer & | operator= (serializer &&)=delete
| ~serializer ()=default
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 More...
| for (std::size_t i=0;i< s.size();++i)
| if (JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT))

## Public Attributes

JSON_PRIVATE_UNLESS_TESTED | __pad0__: void dump_escaped(const string_t& s
JSON_PRIVATE_UNLESS_TESTED const bool | ensure_ascii
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
std::array< char, 64 > | number_buffer {{}}
| a (hopefully) large enough character buffer More...
const std::lconv * | loc = nullptr
| the locale More...
const char | thousands_sep = '\0'
| the locale's thousand separator character More...
const char | decimal_point = '\0'
| the locale's decimal point character More...
std::array< char, 512 > | string_buffer {{}}
| string buffer More...
const char | indent_char
| the indentation character More...
string_t | indent_string
| the indentation string More...
const error_handler_t | error_handler
| error_handler how to react on decoding errors More...

## Private Types

using | string_t = typename BasicJsonType::string_t
using | number_float_t = typename BasicJsonType::number_float_t
using | number_integer_t = typename BasicJsonType::number_integer_t
using | number_unsigned_t = typename BasicJsonType::number_unsigned_t
using | binary_char_t = typename BasicJsonType::binary_t::value_type

## Static Private Attributes

static constexpr std::uint8_t | UTF8_ACCEPT = 0
static constexpr std::uint8_t | UTF8_REJECT = 1

## Detailed Description

### template<typename BasicJsonType>
class nlohmann::detail::serializer< BasicJsonType >

Definition at line 15983 of file json.hpp.

## Member Typedef Documentation

## binary_char_t

template<typename BasicJsonType >

using nlohmann::detail::serializer< BasicJsonType >::binary_char_t = typename BasicJsonType::binary_t::value_type

private

Definition at line 15989 of file json.hpp.

## number_float_t

template<typename BasicJsonType >

using nlohmann::detail::serializer< BasicJsonType >::number_float_t = typename BasicJsonType::number_float_t

private

Definition at line 15986 of file json.hpp.

## number_integer_t

template<typename BasicJsonType >

using nlohmann::detail::serializer< BasicJsonType >::number_integer_t = typename BasicJsonType::number_integer_t

private

Definition at line 15987 of file json.hpp.

## number_unsigned_t

template<typename BasicJsonType >

using nlohmann::detail::serializer< BasicJsonType >::number_unsigned_t = typename BasicJsonType::number_unsigned_t

private

Definition at line 15988 of file json.hpp.

## string_t

template<typename BasicJsonType >

using nlohmann::detail::serializer< BasicJsonType >::string_t = typename BasicJsonType::string_t

private

Definition at line 15985 of file json.hpp.

## Constructor & Destructor Documentation

## serializer() [1/3]

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::serializer | ( | output_adapter_t< char > | s,
|  | const char | ichar,
|  | error_handler_t | error_handler_ = `error_handler_t::strict`
| ) |  |

inline

Parameters

  [in] | s | output stream to serialize to
  [in] | ichar | indentation character to use
  [in] | error_handler_ | how to react on decoding errors

Definition at line 15999 of file json.hpp.

## serializer() [2/3]

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::serializer | ( | const serializer< BasicJsonType > & |  | ) |

delete

## serializer() [3/3]

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::serializer | ( | serializer< BasicJsonType > && |  | ) |

delete

## ~serializer()

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::~serializer | ( |  | ) |

default

## Member Function Documentation

## dump()

template<typename BasicJsonType >

void nlohmann::detail::serializer< BasicJsonType >::dump | ( | const BasicJsonType & | val,
|  | const bool | pretty_print,
|  | const bool | ensure_ascii,
|  | const unsigned int | indent_step,
|  | const unsigned int | current_indent = `0`
| ) |  |

inline

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"` format
- binary values are serialized as objects containing the subtype and the byte array

Parameters

  [in] | val | value to serialize
  [in] | pretty_print | whether the output shall be pretty-printed
  [in] | ensure_ascii | If ensure_ascii is true, all non-ASCII characters in the output are escaped with `\uXXXX` sequences, and the result consists of ASCII characters only.
  [in] | indent_step | the indent level
  [in] | current_indent | the current indent level (only used internally)

Definition at line 16039 of file json.hpp.

References nlohmann::detail::array, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, JSON_PRIVATE_UNLESS_TESTED, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, and nlohmann::detail::string.

## for()

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::for | ( |  | ) |

inline

Definition at line 16333 of file json.hpp.

References nlohmann::detail::type_error::create(), nlohmann::detail::ignore, JSON_ASSERT, JSON_THROW, nlohmann::detail::replace, nlohmann::detail::strict, nlohmann::detail::string, nlohmann::detail::binary_writer< BasicJsonType, CharType >::to_char_type(), and nlohmann::to_string().

## if()

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::if | ( | JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT) |  | ) |

inline

Definition at line 16525 of file json.hpp.

## operator=() [1/2]

template<typename BasicJsonType >

serializer& nlohmann::detail::serializer< BasicJsonType >::operator= | ( | const serializer< BasicJsonType > & |  | ) |

delete

## operator=() [2/2]

template<typename BasicJsonType >

serializer& nlohmann::detail::serializer< BasicJsonType >::operator= | ( | serializer< BasicJsonType > && |  | ) |

delete

## Member Data Documentation

## __pad0__

template<typename BasicJsonType >

JSON_PRIVATE_UNLESS_TESTED nlohmann::detail::serializer< BasicJsonType >::__pad0__

Definition at line 16323 of file json.hpp.

## bytes

template<typename BasicJsonType >

std::size_t nlohmann::detail::serializer< BasicJsonType >::bytes = 0

Definition at line 16327 of file json.hpp.

## bytes_after_last_accept

template<typename BasicJsonType >

std::size_t nlohmann::detail::serializer< BasicJsonType >::bytes_after_last_accept = 0

Definition at line 16330 of file json.hpp.

## decimal_point

template<typename BasicJsonType >

const char nlohmann::detail::serializer< BasicJsonType >::decimal_point = '\0'

the locale's decimal point character

Definition at line 16883 of file json.hpp.

## else

template<typename BasicJsonType >

nlohmann::detail::serializer< BasicJsonType >::else

Definition at line 16534 of file json.hpp.

## ensure_ascii

template<typename BasicJsonType >

JSON_PRIVATE_UNLESS_TESTED const bool nlohmann::detail::serializer< BasicJsonType >::ensure_ascii

Initial value:
{
std::uint32_t codepoint{}

Definition at line 16324 of file json.hpp.

## error_handler

template<typename BasicJsonType >

const error_handler_t nlohmann::detail::serializer< BasicJsonType >::error_handler

error_handler how to react on decoding errors

Definition at line 16894 of file json.hpp.

## indent_char

template<typename BasicJsonType >

const char nlohmann::detail::serializer< BasicJsonType >::indent_char

the indentation character

Definition at line 16889 of file json.hpp.

## indent_string

template<typename BasicJsonType >

string_t nlohmann::detail::serializer< BasicJsonType >::indent_string

the indentation string

Definition at line 16891 of file json.hpp.

## loc

template<typename BasicJsonType >

const std::lconv* nlohmann::detail::serializer< BasicJsonType >::loc = nullptr

the locale

Definition at line 16879 of file json.hpp.

## number_buffer

template<typename BasicJsonType >

std::array<char, 64> nlohmann::detail::serializer< BasicJsonType >::number_buffer {{}}

a (hopefully) large enough character buffer

Definition at line 16876 of file json.hpp.

## state

template<typename BasicJsonType >

std::uint8_t nlohmann::detail::serializer< BasicJsonType >::state = UTF8_ACCEPT

Definition at line 16326 of file json.hpp.

## string_buffer

template<typename BasicJsonType >

std::array<char, 512> nlohmann::detail::serializer< BasicJsonType >::string_buffer {{}}

string buffer

Definition at line 16886 of file json.hpp.

## thousands_sep

template<typename BasicJsonType >

const char nlohmann::detail::serializer< BasicJsonType >::thousands_sep = '\0'

the locale's thousand separator character

Definition at line 16881 of file json.hpp.

## undumped_chars

template<typename BasicJsonType >

std::size_t nlohmann::detail::serializer< BasicJsonType >::undumped_chars = 0

Definition at line 16331 of file json.hpp.

## UTF8_ACCEPT

template<typename BasicJsonType >

constexpr std::uint8_t nlohmann::detail::serializer< BasicJsonType >::UTF8_ACCEPT = 0

static private

Definition at line 15990 of file json.hpp.

## UTF8_REJECT

template<typename BasicJsonType >

constexpr std::uint8_t nlohmann::detail::serializer< BasicJsonType >::UTF8_REJECT = 1

static private

Definition at line 15991 of file json.hpp.

The documentation for this class was generated from the following file:

- json.hpp