Qt QList <qstring>数据库序列化</qstring>

时间:2012-03-22 07:15:57

标签: qt serialization qtsql

我有一个QList列表。我想将它插入数据库。一些谷歌搜索后我没有找到任何序列化方法。如果有任何方法/想法来序列化数据库的列表数据?

2 个答案:

答案 0 :(得分:3)

如何使用QStringList代替QList<QString> -

QStringList numberList_;    // instead of QList<QString>, use this
QString myString1 = "Hello";
QString myString2 = "World";
numberList_ << myString1;
numberList_ << myString2;

QByteArray byteArray;
QBuffer buffer(&byteArray);
QDataStream out(&buffer);
out << numberList_;

可能QList<QString>也应该取代QStringList。如果没有,那么你可以很容易地将它转换为QStringList

QDataStreamQBufferQByteArrayQStringList参考。

答案 1 :(得分:0)

这是另一个更简洁的选择:

QString serialize(QStringList stringList)
{
  QByteArray byteArray;
  QDataStream out(&byteArray, QIODevice::WriteOnly);
  out << stringList;
  return QString(byteArray.toBase64());
}

QStringList deserialize(QString serializedStringList)
{
  QStringList result;
  QByteArray byteArray = QByteArray::fromBase64(serializedStringList.toUtf8());
  QDataStream in(&byteArray, QIODevice::ReadOnly);
  in >> result;
  return result;
}