38#include <nfx/json/Document.h>
39#include <nfx/json/Builder.h>
41namespace nfx::serialization::json
57 friend struct SerializationTraits;
168 template <
typename U>
169 inline void serializeValue(
const U& obj, nfx::json::Builder& builder )
const;
177 template <
typename U>
178 inline void deserializeValue(
const nfx::json::Document& doc, U& obj )
const;
188#include "nfx/detail/serialization/json/Serializer.inl"
Unified serialization traits for JSON serialization/deserialization.
Type traits for JSON serialization.
Serializer(const Options &options) noexcept
Constructor with options.
static T fromString(std::string_view jsonStr, const Options &options={})
Deserialize object from JSON string.
static std::string toString(const T &obj, const Options &options={})
Serialize object to JSON string.
const Options & options() const noexcept
Get current serialization options.
T value_type
The type being serialized/deserialized.
Serializer()=default
Default constructor.
void setOptions(const Options &options) noexcept
Set serialization options.
Serialization options and context.
Options()=default
Default constructor.
bool prettyPrint
Format output with indentation.
bool escapeNonAscii
Escape non-ASCII characters (> 127) as \uXXXX.
void copyFrom(const typename Serializer< U >::Options &other)
Copy values from another serializer's options.
bool includeNullFields
Include fields with null values in output.
static Options createFrom(const typename Serializer< U >::Options &other)
Create Options with values copied from another serializer's options.
bool validateOnDeserialize
Validate data during deserialization.