PIP 5.9.0
Platform-Independent Primitives
Загрузка...
Поиск...
Не найдено
Файл pijsonserialization.h

Вспомогательные шаблоны для сериализации JSON. Подробнее...

#include "pijson.h"

Функции

template<typename T, typename std::enable_if< std::is_enum< T >::value, int >::type = 0>
PIJSON piSerializeJSON (const T &v)
 Сериализует значения перечислений как JSON-числа.
template<typename T, typename std::enable_if<!std::is_enum< T >::value, int >::type = 0, typename std::enable_if< std::is_arithmetic< T >::value, int >::type = 0>
PIJSON piSerializeJSON (const T &v)
 Сериализует арифметические значения как JSON-скаляры.
PIJSON piSerializeJSON (const PIJSON &v)
 Возвращает JSON-узел без изменений.
template<>
PIJSON piSerializeJSON (const PIVariant &v)
 Сериализует PIVariant в соответствующий скалярный JSON-узел.
template<typename T>
PIJSON piSerializeJSON (const complex< T > &v)
 Сериализует комплексное число как массив [real, imag].
template<typename T>
PIJSON piSerializeJSON (const PIFlags< T > &v)
 Сериализует PIFlags как целочисленную маску.
template<>
PIJSON piSerializeJSON (const PIString &v)
 Сериализует PIString как JSON-строку.
template<>
PIJSON piSerializeJSON (const PIConstChars &v)
 Сериализует PIConstChars как JSON-строку.
template<>
PIJSON piSerializeJSON (const PIByteArray &v)
 Сериализует PIByteArray как строку Base64.
template<>
PIJSON piSerializeJSON (const PISystemTime &v)
 Сериализует PISystemTime как объект с полями s и ns.
template<>
PIJSON piSerializeJSON (const PITime &v)
 Сериализует PITime как объект с полями h, m, s и z.
template<>
PIJSON piSerializeJSON (const PIDate &v)
 Сериализует PIDate как объект с полями y, M и d.
template<>
PIJSON piSerializeJSON (const PIDateTime &v)
 Сериализует PIDateTime как объект с полями y, M, d, h, m, s и z.
template<>
PIJSON piSerializeJSON (const PINetworkAddress &v)
 Сериализует PINetworkAddress как строку.
template<typename T>
PIJSON piSerializeJSON (const PIPoint< T > &v)
 Сериализует PIPoint как объект с полями x и y.
template<typename T>
PIJSON piSerializeJSON (const PILine< T > &v)
 Сериализует PILine как объект с полями p0 и p1.
template<typename T>
PIJSON piSerializeJSON (const PIRect< T > &v)
 Сериализует PIRect как объект с полями bl и tr.
template<typename T1, typename T2>
PIJSON piSerializeJSON (const PIPair< T1, T2 > &v)
 Сериализует PIPair как массив из двух элементов.
template<typename T>
PIJSON piSerializeJSON (const PIVector< T > &v)
 Сериализует PIVector как JSON-массив.
template<typename T>
PIJSON piSerializeJSON (const PIDeque< T > &v)
 Сериализует PIDeque как JSON-массив.
template<typename T>
PIJSON piSerializeJSON (const PIVector2D< T > &v)
 Сериализует PIVector2D как объект с rows, cols и плоским массивом mat.
template<typename T>
PIJSON piSerializeJSON (const PISet< T > &v)
 Сериализует PISet как JSON-массив.
template<typename K, typename T>
PIJSON piSerializeJSON (const PIMap< K, T > &v)
 Сериализует PIMap как JSON-объект со строковыми ключами.
template<typename T>
PIJSON piSerializeJSON (const PIMathVector< T > &v)
 Сериализует PIMathVector как JSON-массив.
template<uint Size, typename T>
PIJSON piSerializeJSON (const PIMathVectorT< Size, T > &v)
 Сериализует PIMathVectorT фиксированного размера как JSON-массив.
template<>
PIJSON piSerializeJSON (const PIStringList &v)
 Сериализует PIStringList как JSON-массив.
template<typename T, typename std::enable_if< std::is_enum< T >::value, int >::type = 0>
void piDeserializeJSON (T &v, const PIJSON &js)
 Десериализует значение перечисления из JSON-числа.
template<typename T, typename std::enable_if<!std::is_enum< T >::value, int >::type = 0, typename std::enable_if< std::is_arithmetic< T >::value, int >::type = 0>
void piDeserializeJSON (T &v, const PIJSON &js)
 Десериализует арифметическое значение из JSON-скаляра.
void piDeserializeJSON (PIJSON &v, const PIJSON &js)
 Копирует JSON-узел без изменений.
template<>
void piDeserializeJSON (PIVariant &v, const PIJSON &js)
 Извлекает скалярное значение JSON-узла в PIVariant.
template<typename T>
void piDeserializeJSON (complex< T > &v, const PIJSON &js)
 Десериализует комплексное число из массива [real, imag].
template<typename T>
void piDeserializeJSON (PIFlags< T > &v, const PIJSON &js)
 Десериализует PIFlags из целочисленной маски.
template<>
void piDeserializeJSON (PIString &v, const PIJSON &js)
 Десериализует PIString из строкового представления JSON.
template<>
void piDeserializeJSON (PIByteArray &v, const PIJSON &js)
 Десериализует PIByteArray из строки Base64.
template<>
void piDeserializeJSON (PISystemTime &v, const PIJSON &js)
 Десериализует PISystemTime из объекта с полями s и ns.
template<>
void piDeserializeJSON (PITime &v, const PIJSON &js)
 Десериализует PITime из объекта с полями h, m, s и z.
template<>
void piDeserializeJSON (PIDate &v, const PIJSON &js)
 Десериализует PIDate из объекта с полями y, M и d.
template<>
void piDeserializeJSON (PIDateTime &v, const PIJSON &js)
 Десериализует PIDateTime из объекта с полями y, M, d, h, m, s и z.
template<>
void piDeserializeJSON (PINetworkAddress &v, const PIJSON &js)
 Десериализует PINetworkAddress из строки.
template<typename T>
void piDeserializeJSON (PIPoint< T > &v, const PIJSON &js)
 Десериализует PIPoint из объекта с полями x и y.
template<typename T>
void piDeserializeJSON (PILine< T > &v, const PIJSON &js)
 Десериализует PILine из объекта с полями p0 и p1.
template<typename T>
void piDeserializeJSON (PIRect< T > &v, const PIJSON &js)
 Десериализует PIRect из объекта с полями bl и tr.
template<typename T1, typename T2>
void piDeserializeJSON (PIPair< T1, T2 > &v, const PIJSON &js)
 Десериализует PIPair из массива из двух элементов.
template<typename T>
void piDeserializeJSON (PIVector< T > &v, const PIJSON &js)
 Десериализует PIVector из JSON-массива.
template<typename T>
void piDeserializeJSON (PIDeque< T > &v, const PIJSON &js)
 Десериализует PIDeque из JSON-массива.
template<typename T>
void piDeserializeJSON (PIVector2D< T > &v, const PIJSON &js)
 Десериализует PIVector2D из объекта с rows, cols и плоским массивом mat.
template<typename T>
void piDeserializeJSON (PISet< T > &v, const PIJSON &js)
 Десериализует PISet из JSON-массива.
template<typename K, typename T>
void piDeserializeJSON (PIMap< K, T > &v, const PIJSON &js)
 Десериализует PIMap из JSON-объекта со строковыми ключами.
template<typename T>
void piDeserializeJSON (PIMathVector< T > &v, const PIJSON &js)
 Десериализует динамический PIMathVector из JSON-массива.
template<uint Size, typename T>
void piDeserializeJSON (PIMathVectorT< Size, T > &v, const PIJSON &js)
 Десериализует PIMathVectorT фиксированного размера из JSON-массива, отбрасывая лишние элементы.
template<>
void piDeserializeJSON (PIStringList &v, const PIJSON &js)
 Десериализует PIStringList из JSON-массива.

Подробное описание

Вспомогательные шаблоны для сериализации JSON.

Этот файл предоставляет шаблонные функции для сериализации и десериализации различных типов в формат PIJSON и из него.

Функции

◆ piSerializeJSON()

template<typename T, typename std::enable_if<!std::is_enum< T >::value, int >::type = 0, typename std::enable_if< std::is_arithmetic< T >::value, int >::type = 0>
PIJSON piSerializeJSON ( const T & v)
inline

Сериализует арифметические значения как JSON-скаляры.

Резервная перегрузка, которая намеренно завершает компиляцию ошибкой для неподдерживаемых сложных типов.

◆ piDeserializeJSON()

template<typename T, typename std::enable_if<!std::is_enum< T >::value, int >::type = 0, typename std::enable_if< std::is_arithmetic< T >::value, int >::type = 0>
void piDeserializeJSON ( T & v,
const PIJSON & js )
inline

Десериализует арифметическое значение из JSON-скаляра.

Резервная перегрузка, которая намеренно завершает компиляцию ошибкой для неподдерживаемых сложных типов.