QMap和JSON类型转化

void QMapToJson()
{
    QMap<QString,QVariant> mapData = QMap<QString,QVariant>(); // 定义一个map
    mapData.insert("id","30001");  // 插入数据
    mapData.insert("number","189053056");
    mapData.insert("name","Json");

    QJsonDocument doc = QJsonDocument::fromVariant(QVariant(mapData)); // 转化成documnet对象
    QByteArray bJson = doc.toJson();
    QString sJson = QString(bJson); //转化为字符串
    qDebug()<<sJson<<endl;

    QByteArray bsJson = sJson.toUtf8();   // 字符串转化为字节数组
    QJsonObject jobj = QJsonObject(QJsonDocument::fromJson(bsJson).object()); // 字节数组转化为Json对象
//    QJsonObject nobj = QJsonObject(QJsonDocument::fromJson(bsJson).object());

    qDebug()<<jobj.take("id").toString()<<endl
           <<jobj.take("number").toString()<<endl
          <<jobj.take("name").toString()<<endl;

}

void JsonToMap(){
    QJsonObject json; // 定义json对象
    json.insert("id","3000");
    json.insert("number","88888");
    json.insert("name","Json");

    QJsonDocument document;  // 定义一个文件对象
    document.setObject(json); // 设置json对象
    // 将qjsonddocument转换为提供格式的UTF-8编码JSON文档。
    // 将紧凑输出定义如下:
    QByteArray byteArray = document.toJson(QJsonDocument::Compact);
    QString strJson(byteArray); // 转化成字符串
    qDebug()<<strJson<<endl;
    QVariantMap map = json.toVariantMap();
    int num = map.size();
    qDebug()<<"元素个数"
           <<num
          <<endl;

    QMap<QString,QVariant>::const_iterator iter = map.constBegin();
    while(iter != map.constEnd())
    {
        qDebug()<<"key:" <<iter.key()<<" value"<<iter.value();
        ++iter;
    }

}
原文地址:https://www.cnblogs.com/countryboy666/p/14068067.html