3

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

4

2 回答 2

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参考。

于 2012-03-22T07:26:08.377 回答
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;
}
于 2013-06-21T22:30:27.627 回答