Frage

I have a QList list. I want to insert it on the database. I didn't find any serializer method after some googling. If there any method / idea to serialize the list data for database?

War es hilfreich?

Lösung

How about using QStringList instead of 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_;

Probably QList<QString> should also work in place of QStringList. If it doesn't, well, you can convert it pretty easily to QStringList.

QDataStream, QBuffer, QByteArray and QStringList reference.

Andere Tipps

Here is another option that is a bit more succinct:

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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top