此QJson并不是QT内部的QJson,而是第三方库。 主要用于json序列化和反序列化,用于网络通讯。
- 解析:从JSON到QVariant。
// create a Parser instance
QJson::Parser parser;
bool ok;
// json is a QString containing the data to convert
QVariant result = parser.parse (json, &ok);
- 序列化:从QVariant到JSON。
QVariant people;
QJson::Serializer serializer;
bool ok;
QByteArray json = serializer.serialize(people, &ok);
if (ok) {
qDebug() << json;
} else {
qCritical() << "Something went wrong:" << serializer.errorMessage();
}
3.QObject helper:转储和恢复QObject的属性。
Person person;
person.setName("Flavio1");
person.setPhoneNumber(123456);
person.setGender(Person::Male);
person.setDob(QDate(1982, 7, 12));
//--------------------------------------------------------------------
QVariantMap variant = QJson::QObjectHelper::qobject2qvariant(&person);
QJson::Serializer serializer;
bool ok;
QByteArray json = serializer.serialize(variant, &ok);
qDebug() << "json is:" << json;
//--------------------------------------------------------------------
Person person1;
QJson::Parser parser;
auto variant1 = parser.parse(json, &ok);
QJson::QObjectHelper::qvariant2qobject(variant, &person1);
qDebug() << "name:" << person1.name();
文档:
http://qjson.sourceforge.net/docs/index.html
测试代码:
链接:https://pan.baidu.com/s/1s9WAKp8NnntyxBsxy2tY1w
提取码:ud3z