Added deserialization from JSON file
This commit is contained in:
35
src/Project-Orion/serialization.cpp
Normal file
35
src/Project-Orion/serialization.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
#include "serialization.h"
|
||||
#include <filesystem>
|
||||
#include <QFile>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonArray>
|
||||
#include <QJsonObject>
|
||||
|
||||
UserList&& loadUserList(const QString &file)
|
||||
{
|
||||
QFile doc{std::filesystem::path{file.toStdString()}};
|
||||
QString fileContents = doc.readAll();
|
||||
QJsonDocument document = QJsonDocument::fromJson(fileContents.toUtf8());
|
||||
|
||||
QJsonArray array = document.array();
|
||||
QVector<User> container;
|
||||
|
||||
for (auto elem: array)
|
||||
{
|
||||
auto obj = elem.toObject();
|
||||
User newUser{obj["name"].toString(), QDate::fromString(obj["date_of_birth"].toString()),
|
||||
QDate::fromString(obj["date_of_death"].toString()), obj["default"].toBool()};
|
||||
|
||||
container.append(newUser);
|
||||
}
|
||||
|
||||
UserList returnObj;
|
||||
returnObj.setList(container);
|
||||
|
||||
return std::move(returnObj);
|
||||
}
|
||||
|
||||
void saveUserList(const UserList &list)
|
||||
{
|
||||
|
||||
}
|
Reference in New Issue
Block a user