1. 程式人生 > 實用技巧 >QMap和JSON型別轉化

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; } }