#include "noticecategory.h" NoticeCategory::NoticeCategory(QObject *parent) : QObject(parent) { } NoticeCategory::NoticeCategory(const QString *name, QVector *subcategories, const QString *content, QObject *parent) : QObject(parent) { NoticeCategory::name = name; NoticeCategory::subcategories = subcategories; NoticeCategory::content = content; } const QString* NoticeCategory::getName() { return NoticeCategory::name; } const QVector* NoticeCategory::getSubCategories() { return NoticeCategory::subcategories; } const QString* NoticeCategory::getContent() { return NoticeCategory::content; } QString* NoticeCategory::toJSON() { QVariantMap map = toQVariantMap(); QJson::Serializer serializer; return new QString(serializer.serialize(map)); } void NoticeCategory::setName(const QString& newName) { NoticeCategory::name = &newName; } void NoticeCategory::setSubCategories(const QVector& newSubcategories) { NoticeCategory::subcategories = &newSubcategories; } void NoticeCategory::setContent(const QString& newContent) { NoticeCategory::content = &newContent; } void NoticeCategory::fromJSON(const QString& str) { QJson::Parser parser; QVariantMap result = parser.parse(str.toUtf8(), &ok).toMap(); QString name = result["name"].toString(); QString content = result["content"].toString(); QVector *vect = new QVector(); NoticeCategory &cat = *(new NoticeCategory(this)); foreach (QVariant subcategory, result["subcategories"].toList()) { cat.fromJSON(subcategory.toString()); vect->push_back(cat); } subcategories = vect; } QVariantMap NoticeCategory::toQVariantMap() { QVariantMap map; map.insert("name", NoticeCategory::name); map.insert("content", NoticeCategory::content); QVariantList list; foreach (NoticeCategory cat, NoticeCategory::subcategories) { list.append(cat.toQVariantMap()); } map.insert("subcategories", list); return map; }