欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt寫入Json文件的方法詳解(含源碼+注釋)

 更新時間:2022年10月21日 10:34:53   作者:lw只吃億點.  
在Qt庫中,為JSON的相關操作提供了完整的類支持,下面這篇文章主要給大家介紹了關于Qt寫入Json文件(含源碼+注釋)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、示例Json文件內(nèi)容

下方為本文所使用的Json文件的內(nèi)容,其中包含字符串、數(shù)值、布爾、null、對象、數(shù)組等(寫入方式在本文第三節(jié))

{
    "array": [
        "str",
        88,
        null
    ],
    "bool": true,
    "jChildObj": {
        "age": 25,
        "name": "tom"
    },
    "null": null,
    "number": 66,
    "str": "String"
}

二、Json寫入會使用的類(介紹寫入所使用的類在本文中的作用,個人理解)

  • QJsonDocument:使用其提供的toJson函數(shù)獲取json串
  • QJsonObject:創(chuàng)建用于存儲所有類型的根對象,和創(chuàng)建對象類型的變量
  • QJsonArray:用于創(chuàng)建數(shù)組變量,并存放數(shù)組數(shù)據(jù)

三、Json文件的寫入

3.1 常規(guī)類型的寫入

創(chuàng)建根對象(QJsonObject)

	//創(chuàng)建QJsonObject對象(姑且稱之為根對象),用于存放需要寫入的數(shù)據(jù)
    QJsonObject jObj;

常規(guī)對象的添加

	//添加字符串類型
    jObj.insert("str", "String");

    //添加數(shù)值類型(在值為具體值時其中的QJsonValue可以不使用,直接放入值本身)
    jObj.insert("number", QJsonValue(66));

    //添加布爾類型
    jObj.insert("bool", true);

    //添加空值(直接放一個QJsonValue對象即可,不傳入值時默認為空)
    jObj.insert("null", QJsonValue());

3.2 對象及數(shù)組類型的添加

對象類型

	//對象類型需要一個子QJsonObject對象存放,然后在添加到根QJsonObject對象中
    QJsonObject jChildObj;
    //添加值時直接使用如上方法添加具體值即可
    jChildObj.insert("name", "tom");
    jChildObj.insert("age", 25);

    //當子對象的值添加完成后將子對象添加到根對象中即可
    jObj.insert("jChildObj", jChildObj);

數(shù)組類型

	//創(chuàng)建數(shù)組對象
    QJsonArray array;
    //QJsonArray容器和普通容器的添加方法一樣,都可調(diào)用append函數(shù)
    array.append("str");
    array.append(88);
    array.append(QJsonValue());
    //數(shù)組中元素添加完成后將其添加到根對象中
    jObj.insert("array", array);

3.3 Json串寫入文件

    //創(chuàng)建QJsonDocument對象并將根對象傳入
    QJsonDocument jDoc(jObj);
    //打開存放json串的文件
    QFile file("./jsonTest2.json");
    if(!file.open(QIODevice::WriteOnly))
        return 0;
    //使用QJsonDocument的toJson方法獲取json串并保存到數(shù)組
    QByteArray data(jDoc.toJson());
    //將json串寫入文件
    file.write(data);
    file.close();

總結

建議學習前先了解一下Json文件格式,組合類型只需將需要的類型添加到存放的類型中即可

到此這篇關于Qt寫入Json文件的文章就介紹到這了,更多相關Qt寫入Json文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

相關文章

  • 基于Qt OpenCV的圖像灰度化像素操作詳解

    基于Qt OpenCV的圖像灰度化像素操作詳解

    這篇文章主要為大家詳細介紹了基于Qt+OpenCV的圖像灰度化像素操作:最大值法、平均法、加權平均值法,感興趣的小伙伴可以了解一下
    2022-07-07
  • C++實現(xiàn)惡搞電腦關機小程序的示例代碼

    C++實現(xiàn)惡搞電腦關機小程序的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C++實現(xiàn)一個簡單的惡搞電腦關機小程序,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下
    2022-11-11
  • 解析一個有關sizeof用法的題目--sizeof(i++)

    解析一個有關sizeof用法的題目--sizeof(i++)

    本篇文章是對一個關于sizeof用法的題目進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • C++函數(shù)重載介紹與原理詳解

    C++函數(shù)重載介紹與原理詳解

    這篇文章主要為大家介紹了C++函數(shù)重載介紹與原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • static_cast,dynamic_cast,reinterpret_cast和const_cast的區(qū)別詳解

    static_cast,dynamic_cast,reinterpret_cast和const_cast的區(qū)別詳解

    以下是對static_cast,dynamic_cast,reinterpret_cast和const_cast之間的區(qū)別進行了詳細的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++小知識:不要去做編譯器的工作

    C++小知識:不要去做編譯器的工作

    今天小編就為大家分享一篇關于C++小知識:不要去做編譯器的工作,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • C++高性能服務器框架之協(xié)程調(diào)度模塊

    C++高性能服務器框架之協(xié)程調(diào)度模塊

    這篇文章主要介紹了C++高性能服務器框架中的協(xié)程調(diào)度模塊,文中通過代碼示例介紹的非常詳細,對我們的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-06-06
  • C++靜態(tài)成員函數(shù)和this指針詳解

    C++靜態(tài)成員函數(shù)和this指針詳解

    這篇文章主要為大家介紹了C++靜態(tài)成員函數(shù)和this指針,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C/C++中typedef的用法大全

    C/C++中typedef的用法大全

    typedef用法一共七種,分別是:為基本數(shù)據(jù)類型起別名、為結構體起別名、為指針類型起別名、為數(shù)組類型起別名、為枚舉類型起別名、為模版函數(shù)起別名。本文就來分別講講這7個用法的具體實現(xiàn)吧
    2023-04-04
  • Qt教程之QSqlQueryModel的使用詳解

    Qt教程之QSqlQueryModel的使用詳解

    QSqlQueryModel是QSqlTableModel的父類,它封裝了執(zhí)行SELECT語句從數(shù)據(jù)庫查詢數(shù)據(jù)的功能,本文將為大家介紹一下QSqlQueryModel的使用,需要的可以參考一下
    2022-11-11

最新評論