PIP 5.6.1
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<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-массива, отбрасывая лишние элементы.
 

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

Вспомогательные шаблоны для сериализации 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-скаляра.

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