1. 程式人生 > >Qt中的Jason解析詳解

Qt中的Jason解析詳解

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它比XML還小巧。 JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、JavaJavaScript等)。這些特性使JSON成為理想的資料交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速率)。

關於Qt中對JSON的生成與解析,Qt5以前的版本,需要去進行單獨下載、編譯,才能使用。到了Qt5,提供了專門的QJsonDocument類來讀取和寫入JSON文件。

其基本資料型別有:

數字(整數或浮點數)
字串(在雙引號中)
邏輯值(true 或 false)
陣列(在方括號[]中)
物件(在花括號{}中)

null

待補充

Qt中常用到的JSON類有以下這些:


QJsonDocument
QJsonDocument既可以從一個基於文字表示的UTF-8編碼,又可以從Qt自己的二進位制格式讀取和寫入這個檔案。

JSON文件可以從它的基於文字的表示使用QJsonDocument::fromJson()轉換為QJsonDocument,用.toJSON()將其轉換回文字。解析器非常快速和高效,將JSON轉換為二進位制表示。

QJsonObject
QJsonObject類用於封裝JSON物件。
JSON物件是鍵值對,其中鍵是唯一的字串,其值由QJsonValue代表。一個QJsonObject可以從QVariantMap轉換/被轉換。

QJsonArray

QJsonArray類用於封裝JSON陣列。
一個JSON陣列列表值。該列表可以通過從陣列插入和移除QJsonValue的操縱。一個QJsonArray可以從QVariantList轉換為/被轉換。

QJsonDocument有效解析後的文件可以使用!iSNull()判斷。使用isArray()和isObject()來判斷是否包含一個數組或物件。文件中包含的陣列或物件可以使用array()或object()進行檢索,然後讀取或操縱。

相關推薦

QtJason解析

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它比XML還小巧。 JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript等)。這些特性使JSON成為理想

QT的qmake

1.首先,感性的認識是,qmake可以利用原始檔(包括標頭檔案h,實現檔案cpp,qt的ui檔案等等)生成各種不同型別的工程,工程需要的Makefile檔案,可執行的與不可執行的,這取決於所用的模板(包括app、lib、subdirs、vcapp、vclib)。 2.建立pro檔案,新增各種原始檔,還可

AndroidRingtone播放【安卓原始碼解析五】

        現在咱們來聊聊android系統中鈴聲的播放,從framework層面說說Ringtone的播放原理,我在android原始碼中碰到了播放系統鈴聲中的問題,所以仔細研究了這方面的知識,現在整理一下,給讀者一些幫助,現在我對鈴聲的播放和設定特別親切,不管是簡

C/C++extern關鍵字

編譯器 fin 生成 接口 bcd 只需要 c++環境 結束 編程 轉自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解釋:extern可以置於變量或者函數前,以標示變量或者

js的attribute

介紹 特點 奇怪 使用方式 get inner () input 關於 Attribute是屬性的意思,文章僅對部分兼容IE和FF的Attribute相關的介紹。 attributes:獲取一個屬性作為對象 getAttribute:獲取某一個屬性的值setAttribu

【JavaScript的this

定律 htm uid js代碼 tdd ati tom dmr doctype 前言 this用法說難不難,有時候函數調用時,往往會搞不清楚this指向誰?那麽,關於this的用法,你知道多少呢? 下面我來給大家整理一下關於this的詳細分析,希望對大家有所幫助!

hibernateinverse屬性

values 性能 update 關聯 維護 value str true 詳解 術語”inverse”直譯為”反轉”。在Hibernate中,inverse屬性指定了關聯關系中的方向。關聯關系中,inverse=“false”的為主動方,由主動方維護關聯關系。在一對多關聯

hibernate cascade屬性

-m hibernate 發現 執行效率 pda 不一定 () 程序執行效率 刪除 配置關聯時,我們考慮兩點:程序執行效率和實際業務需要,前面的例子中無論是單向的關聯還是雙向的關聯,我們都要分別對實體類使用session.save()才能將數據保存至數據庫。問題:如果

JS的showModelDialog和實例

cti 信息 創建 字符 非模態窗口 tle cin dialog ima 1.<a href="#" onclick="SeePic(‘${list.PATH}‘)"><font color="blue">預覽</font></a

Eclipse的BuildPath【轉載】

sdn libraries 依賴 源代碼 title 打開 低版本 代碼 功能 什麽是Build Path? Build Path是指定Java工程所包含的資源屬性集合。 在一個成熟的Java工程中,不僅僅有自己編寫的源代碼,還需要引用系統運行庫(JRE)、第三方的功能擴展

C/C++作用域(轉)

防止 局部作用域 gist 文件中 方式 為什麽不使用 形式參數 lan archive 作用域規則告訴我們一個變量的有效範圍,它在哪兒創建,在哪兒銷毀(也就是說超出了作用域)。變量的有效作用域從它的定義點開始,到和定義變量之前最鄰近的開括號配對的第一個閉括號。也就是說,作

JavaScriptgetBoundingClientRect()方法

script otto java chrome 頁面 支持 urn client fire getBoundingClientRect() 這個方法返回一個矩形對象,包含四個屬性:left、top、right和bottom。分別表示元素各邊與頁面上邊和左邊的距離。

WebService的WSDL 及jmeter測試

images 包括 3.2 接口測試工具 types 通知 操作 sdl message 首先簡單講解一下什麽是wsdl. 一個WSDL文檔通常包含8個重要的元素,即definitions、types、import、message、portType、ope

CSS3REM使用

前端學習 參考 瀏覽器 為什麽 pla 同時 寫法 子元素 comment 在頁面中設置字體,我們知道有常見的兩種,px 和 em. px 在Web頁面制作中,我們一般使用“px”來設置我們的文本,因為他比較穩定和精確。但是這種方法存在一個問題,當用戶在瀏覽器中瀏覽我們制作

H264碼流SPS PPS<轉>

擴展 vlc 地址 逗號 部分 級別 軟件 第一個 bottom 轉載地址:https://zhuanlan.zhihu.com/p/27896239 1 SPS和PPS從何處而來? 2 SPS和PPS中的每個參數起什麽作用? 3 如何解析SDP中

JSdocument.cookie

一個 參數 position 函數實現 some document urn 重新 地址 什麽是cookie? cookie 是存儲於訪問者的計算機中的變量。每當同一臺計算機通過瀏覽器請求某個頁面時,就會發送這個 cookie。你可以使用 JavaScript 來創建和取回

linuxexpect命令

linux運維expect介紹expect 是由Don Libes基於Tcl(Tool Command Language )語言開發的,主要應用於自動化交互式操作的場景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等寫在一個腳本上,使之自動化完成。尤其適用於需要對多臺服務器執行相同

Java反射機制

turn face instance java struct () 分享 2.6 一個     序言       在學習java基礎時,由於學的不紮實,講的實用性不強,就覺得沒用,很多重要的知識就那樣一筆帶過了,像這個馬上要講的反射機制一樣,當時學的時候就忽略了,到後來學習

批處理的IF

效果 我不 width set 符號 等於 ron 例子 ima 在CMD使用IF /?打開IF的系統幫助會發現IF有3種基本的用法! 第一種用法:IF [NOT] ERRORLEVEL number command 這種用法現在很少用了,因為它需要使用到CHOICE命令,

函數{}輸出格式(C#)

with content c-s sort 命名方式 發現 1-1 原始的 des Console.WriteLine()函數中{}輸出格式詳解(C#) Console.WriteLine()函數的格式一直沒怎麽註意。今天同事問起Console.WriteLine({0