33#ifndef _QX_SERIALIZE_QJSON_H_
34#define _QX_SERIALIZE_QJSON_H_
47#include <QtCore/qjsonvalue.h>
48#include <QtCore/qjsonobject.h>
49#include <QtCore/qjsonarray.h>
50#include <QtCore/qjsondocument.h>
51#include <QtCore/qfile.h>
58namespace serialization {
67inline QByteArray
to_byte_array(
const T & obj,
void * owner = NULL,
unsigned int flags = 1 ,
const QString & format = QString())
69 Q_UNUSED(flags); Q_UNUSED(owner);
71 QJsonDocument doc = (val.isArray() ? QJsonDocument(val.toArray()) : QJsonDocument(val.toObject()));
76inline qx_bool from_byte_array(T & obj,
const QByteArray & data,
unsigned int flags = 1 ,
const QString & format = QString())
80 QJsonDocument doc = QJsonDocument::fromJson(data, (& err));
81 if (err.error != QJsonParseError::NoError)
82 {
return qx_bool(
false,
static_cast<long>(err.error), err.errorString()); }
83 QJsonValue val = (doc.isArray() ? QJsonValue(doc.array()) : QJsonValue(doc.object()));
88inline QString
to_string(
const T & obj,
unsigned int flags = 1 ,
const QString & format = QString())
92inline qx_bool from_string(T & obj,
const QString & sString,
unsigned int flags = 1 ,
const QString & format = QString())
96inline qx_bool to_file(
const T & obj,
const QString & sFileName,
unsigned int flags = 1 ,
const QString & format = QString())
99 QFile file(sFileName);
100 if (! file.open(QIODevice::WriteOnly | QIODevice::Truncate))
101 {
return qx_bool(
false,
"cannot open file : " + sFileName); }
102 file.write(data); file.close();
107inline qx_bool from_file(T & obj,
const QString & sFileName,
unsigned int flags = 1 ,
const QString & format = QString())
109 QFile file(sFileName);
110 if (! file.open(QIODevice::ReadOnly))
111 {
return qx_bool(
false,
"cannot open file : " + sFileName); }
112 QByteArray data = file.readAll(); file.close();
117inline qx_bool to_file_compressed(
const T & obj,
const QString & sFileName,
unsigned int flags = 1 ,
int iCompressionLevel = -1,
const QString & format = QString())
120 QByteArray compressed = qCompress(data, iCompressionLevel);
121 QFile file(sFileName);
122 if (! file.open(QIODevice::WriteOnly | QIODevice::Truncate))
123 {
return qx_bool(
false,
"cannot open file : " + sFileName); }
124 file.write(compressed); file.close();
131 QFile file(sFileName);
132 if (! file.open(QIODevice::ReadOnly))
133 {
return qx_bool(
false,
"cannot open file : " + sFileName); }
134 QByteArray data = file.readAll(); file.close();
135 QByteArray uncompressed = qUncompress(data);
qx_bool : QxOrm library boolean type with code and description message when an error occured
qx::cvt : namespace to provide global functions to convert any kind of objects to/from QString and QV...
qx_bool : boolean type with code and description message when an error occured
qx_bool from_json(const QJsonValue &j, T &t, const QString &format=QString())
QJsonValue to_json(const T &t, const QString &format=QString())
QByteArray to_byte_array(const T &obj, void *owner=NULL, unsigned int flags=1, const QString &format=QString())
QString to_string(const T &obj, unsigned int flags=1, const QString &format=QString())
qx_bool to_file(const T &obj, const QString &sFileName, unsigned int flags=1, const QString &format=QString())
qx_bool from_string(T &obj, const QString &sString, unsigned int flags=1, const QString &format=QString())
qx_bool from_file(T &obj, const QString &sFileName, unsigned int flags=1, const QString &format=QString())
qx_bool to_file_compressed(const T &obj, const QString &sFileName, unsigned int flags=1, int iCompressionLevel=-1, const QString &format=QString())
qx_bool from_byte_array(T &obj, const QByteArray &data, unsigned int flags=1, const QString &format=QString())
qx_bool from_file_compressed(T &obj, const QString &sFileName, unsigned int flags=1, const QString &format=QString())
Root namespace for all QxOrm library features.