QT开发中文网

struct st_subject { int subject_number;//题目序号 int subject_type; //题目类型 QString subject_name; st_subject_Type subject_Type ; QImage image; st_subject() : subject_number(0), subject_type(0), subject_name(""), image(QImage())...

可以使用Qt中的Json库来实现结构体和Json之间的相互转化。以下是封装的两个函数,一个用于将结构体转换为Json,另一个用于将Json转换为结构体:

#include <QJsonObject>
#include <QJsonDocument>

// 将结构体转换为Json
QJsonObject st_subjectToJson(const st_subject& subject) {
    QJsonObject json;
    json["subject_number"] = subject.subject_number;
    json["subject_type"] = subject.subject_type;
    json["subject_name"] = subject.subject_name;

    // 图片信息转换为Base64字符串存储
    QByteArray imageData;
    QBuffer buffer(&imageData);
    buffer.open(QIODevice::WriteOnly);
    subject.image.save(&buffer, "PNG");  // 假设图片格式为PNG
    QString base64Image = QString::fromLatin1(imageData.toBase64().data());
    json["image"] = base64Image;

    return json;
}

// 将Json转换为结构体
st_subject jsonToSt_subject(const QJsonObject& json) {
    st_subject subject;
    subject.subject_number = json["subject_number"].toInt();
    subject.subject_type = json["subject_type"].toInt();
    subject.subject_name = json["subject_name"].toString();

    // 从Base64字符串还原图片信息
    QString base64Image = json["image"].toString();
    QByteArray imageData = QByteArray::fromBase64(base64Image.toLatin1());
    QImage image;
    
	image.loadFromData(imageData);  // 假设图片格式为PNG
    
	subject.image = image;

     return subject;
}

你可以根据具体需要进行修改,比如更改图片存储格式、使用其他Json库等。希望对你有帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=12069

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?