gpt4 book ai didi

c++ - 如何将此类序列化为 XML 或 JSON

转载 作者:行者123 更新时间:2023-11-30 03:53:22 28 4
gpt4 key购买 nike

我有一个从名为“Campus”的类派生的对象列表,其中包含两个字符串,一个 int 和两个列表:一个用于“学生”,另一个用于“教师”,在关闭程序之前,我想保存校园对象,当然还有列表中包含的“学生”和“教师”对象,我想以 XML 或 JSON 格式或什至其他任何格式序列化这些数据,然后将结果存储在文件中。

有人能给我最快的方法来使用 XML 或 JSON 或其他解决方案中的库(不像 boost 那样重)进行序列化吗?当涉及到处理 JSON 或 XML 序列化时,我不知道该怎么做!编辑:这对 RapidJSON 可行吗?

class Campus
{
private:
std::string city;
std::string region;
int capacity;
std::list<Student> students;
std::list<Teacher> teachers;
}

class Student
{
private:
int ID;
std::string name;
std::string surname;
}

class Teacher
{
protected:
int ID;
std::string name;
std::string surname;
};

最佳答案

您可以使用这个 C++ 序列化库:Pakal persist

#include "XmlWriter.h"


class Campus
{
private:
std::string city;
std::string region;
int capacity;
std::list<Student> students;
std::list<Teacher> teachers;

public:

void persist(Archive* archive)
{
archive->value("city",city);
archive->value("region",region);
archive->value("capacity",capacity);

archive->value("Students","Student",students);
archive->value("Teachers","Teacher",teachers);
}

}

class Student
{
private:
int ID;
std::string name;
std::string surname;

public:

void persist(Archive* archive)
{
archive->value("ID",ID);
archive->value("surname",surname);
archive->value("name",name);
}

}

class Teacher
{
protected:
int ID;
std::string name;
std::string surname;
public:

void persist(Archive* archive)
{
archive->value("ID",ID);
archive->value("surname",surname);
archive->value("name",name);
}
};

Campus c;

XmlWriter writer;
writer.write("campus.xml","Campus",c);

关于c++ - 如何将此类序列化为 XML 或 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30133601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com