日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

【Qt】Qt中JSON简介

發(fā)布時(shí)間:2024/4/24 javascript 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Qt】Qt中JSON简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. JSON簡(jiǎn)介
    • 02. JSON Support in Qt
    • 03. JSON類(lèi)
    • 04. 附錄

01. JSON簡(jiǎn)介

1.1 JSON概述
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,使用了類(lèi)C語(yǔ)言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。

JSON使用JavaScript語(yǔ)法來(lái)描述數(shù)據(jù)對(duì)象,但是JSON仍然獨(dú)立于語(yǔ)言和平臺(tái)。JSON解析器和JSON庫(kù)支持許多不同的編程語(yǔ)言。

1.2 JSON語(yǔ)法

JSON語(yǔ)法是JavaScript對(duì)象表示法語(yǔ)法的子集,語(yǔ)法規(guī)則如下:

  • 數(shù)據(jù)在名稱(chēng)/值對(duì)中

  • 數(shù)據(jù)由逗號(hào)分隔

  • 花括號(hào)保存對(duì)象

  • 方括號(hào)保存數(shù)組

1.3 JSON鍵值對(duì)

JSON 數(shù)據(jù)的書(shū)寫(xiě)格式是:名稱(chēng)/值對(duì)。

名稱(chēng)/值對(duì)包括字段名稱(chēng)(在雙引號(hào)中),后面寫(xiě)一個(gè)冒號(hào),然后是值

"firstName" : "John"

1.4 JSON值類(lèi)型

  • 數(shù)字(整數(shù)或浮點(diǎn)數(shù))

  • 字符串(在雙引號(hào)中)

  • 邏輯值(true或false)

  • 數(shù)組(在方括號(hào)中)

  • 對(duì)象(在花括號(hào)中)

  • null

1.5 JSON對(duì)象

JSON對(duì)象在花括號(hào)中書(shū)寫(xiě):

對(duì)象可以包含多個(gè)名稱(chēng)/值對(duì):

{ "firstName":"Jin" , "lastName":"Deng" }

1.6 JSON數(shù)組

JSON數(shù)組在方括號(hào)中書(shū)寫(xiě):

數(shù)組可包含多個(gè)對(duì)象:

{"people":[{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},{"firstName":"Jason","lastName":"Hunter","email":"bbbb"},{"firstName":"Elliotte","lastName":"Harold","email":"cccc"}] }

02. JSON Support in Qt

2.1 Qt中JSON概述

Qt提供了處理JSON數(shù)據(jù)的支持。JSON是一種編碼來(lái)自Javascript的對(duì)象數(shù)據(jù)的格式,但現(xiàn)在已廣泛用作Internet上的數(shù)據(jù)交換格式。

Qt中的JSON支持提供了易于使用的C ++ API來(lái)解析,修改和保存JSON數(shù)據(jù)。它還支持以二進(jìn)制格式保存此數(shù)據(jù),該格式可以直接“ mmap”訪問(wèn)并且訪問(wèn)速度非常快。

有關(guān)JSON數(shù)據(jù)格式的更多詳細(xì)信息,可以在json.org和RFC-4627中找到。

2.2 Qt中JSON類(lèi)型

JSON是一種存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)的格式。它具有6種基本數(shù)據(jù)類(lèi)型:

  • bool
  • double
  • string
  • array
  • object
  • null

值可以具有上述任何類(lèi)型。布爾值由JSON中的true或false字符串表示。JSON并未明確指定數(shù)字的有效范圍,但是Qt中的支持僅限于有效范圍和雙精度。字符串可以是任何有效的unicode字符串。數(shù)組是值的列表,而對(duì)象是鍵/值對(duì)的集合。對(duì)象中的所有鍵都是字符串,并且對(duì)象不能包含任何重復(fù)的鍵。

JSON的文本表示形式將數(shù)組括在方括號(hào)([…])中,將對(duì)象括在大括號(hào)({…})中。數(shù)組和對(duì)象中的條目以逗號(hào)分隔。對(duì)象中鍵和值之間的分隔符是冒號(hào)(:)。

簡(jiǎn)單的JSON例子如下:

{"FirstName": "John","LastName": "Doe","Age": 43,"Address": {"Street": "Downing Street 10","City": "London","Country": "Great Britain"},"Phone numbers": ["+44 1234567","+44 2345678"]}

上面的示例由一個(gè)具有5個(gè)鍵/值對(duì)的對(duì)象組成。其中兩個(gè)值是字符串,一個(gè)是數(shù)字,一個(gè)是另一個(gè)對(duì)象,最后一個(gè)是數(shù)組。

有效的JSON文檔是數(shù)組或?qū)ο?#xff0c;因此文檔始終以方括號(hào)大括號(hào)開(kāi)頭。

03. JSON類(lèi)

QT4中使用第三方庫(kù)QJson解析JSON文件。

QT5新增加了處理JSON的類(lèi),類(lèi)均以QJson開(kāi)頭,包含在QtCore模塊中。

QT5新增加如下七個(gè)相關(guān)類(lèi):

類(lèi)名描述
QJsonDocument讀寫(xiě) JSON 文檔
QJsonObject封裝 JSON 對(duì)象
QJsonObject::iterator用于遍歷QJsonObject的STL風(fēng)格的非const遍歷器
QJsonParseError報(bào)告 JSON 處理過(guò)程中出現(xiàn)的錯(cuò)誤
QJsonValue封裝 JSON 值
QJsonArray封裝 JSON 數(shù)組

04. 附錄

4.1 JSON官方網(wǎng)站:http://json.org/

4.2 JsonCpp源碼下載:https://github.com/open-source-parsers/jsoncpp

總結(jié)

以上是生活随笔為你收集整理的【Qt】Qt中JSON简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。