QJson序列化与反序列化

此QJson并不是QT内部的QJson,而是第三方库。 主要用于json序列化和反序列化,用于网络通讯。

  1. 解析:从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);
  1. 序列化:从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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值