Qt 對處理 JSON 數據提供支持。JSON 是派生自 JavaScript 的對象數據編碼格式,但現被廣泛用作 Internet 數據交換格式。
Qt 中的 JSON 支持提供易於使用的 C++ API 去剖析、修改和保存 JSON 數據。它還包含對可直接 mmap 且能非常快速訪問,以二進製格式保存數據的支持。
有關 JSON 數據格式的更多細節,可以找到在 json.org 和在 RFC-7159 .
JSON 是結構化數據存儲格式。它有 6 種基本數據類型:
值可以是任何以上類型。bool 值在 JSON 中由字符串 true (或 false) 錶示。JSON 未明確指定數字的有效範圍,但在 Qt 中支持被限製到有效範圍和 double (雙) 精度。string 可以是任何有效的 unicode 字符串。array (數組) 是值的列錶,而 object (對象) 是鍵/值對的集閤。對象中的所有鍵都是字符串,且對象不能包含任何重復鍵。
JSON 文本錶示把數組括在方括號 [...] 中,把對象括在花括號 {...} 中。數組和對象中的條目以逗號分隔。對象中的鍵和值之間的分隔符是冒號 :。
簡單 JSON 文檔編碼一個人、他/她的年齡、地址及電話號碼看起來像:
{
"FirstName": "John",
"LastName": "Doe",
"Age": 43,
"Address": {
"Street": "Downing Street 10",
"City": "London",
"Country": "Great Britain"
},
"Phone numbers": [
"+44 1234567",
"+44 2345678"
]
}
以上範例由 5 個鍵/值對的對象組成。二個值是字符串,一個是數字,一個是其它對象,最後一個是數組。
有效 JSON 文檔是數組 (或對象),因此文檔始終以方括號 (或花括號) 開頭。
所有 JSON 類都是基於值的, 隱式共享類 .
Qt 中的 JSON 支持由這些類組成:
另請參閱 JSON 保存遊戲範例 .
| QJsonArray | 封裝 JSON 數組 |
| QJsonDocument | 讀寫 JSON 文檔的辦法 |
| QJsonParseError | 用於在 JSON 剖析期間報告錯誤 |
| QJsonObject | 封裝 JSON 對象 |
| QJsonObject::const_iterator | QJsonObject::const_iterator 類為 QJsonObject 提供 STL 樣式的常量迭代器 |
| QJsonObject::iterator | QJsonObject::iterator 類為 QJsonObject 提供 STL 樣式的非常量迭代器 |
| QJsonValue | 把值封裝在 JSON 中 |