Qt中JSON简介

JSON是一种轻量级的数据交换格式,广泛用于互联网数据交互。Qt从5版本开始内置了处理JSON的类,提供方便的C++API进行解析、修改和保存。这些类包括QJsonDocument、QJsonObject、QJsonArray等,支持JSON数据的读写以及与Qt数据结构的转换。
摘要由CSDN通过智能技术生成

1. JSON简介

1.1 JSON概述

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,使用了类C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。

JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

1.2 JSON语法

JSON语法是JavaScript对象表示法语法的子集,语法规则如下:

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

1.3 JSON键值对

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值

"firstName" : "John"

1.4 JSON值类型

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

1.5 JSON对象

JSON对象在花括号中书写:

对象可以包含多个名称/值对:

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

1.6 JSON数组

JSON数组在方括号中书写:

数组可包含多个对象:

{
    "people":[

        {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},

        {"firstName":"Jason","lastName":"Hunter","email":"bbbb"},

        {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}

    ]
}

2. JSON Support in Qt

2.1 Qt中JSON概述

Qt提供了处理JSON数据的支持。JSON是一种编码来自Javascript的对象数据的格式,但现在已广泛用作Internet上的数据交换格式。

Qt中的JSON支持提供了易于使用的C ++ API来解析,修改和保存JSON数据。它还支持以二进制格式保存此数据,该格式可以直接“ mmap”访问并且访问速度非常快。

有关JSON数据格式的更多详细信息,可以在 json.org和 RFC-4627中找到。

2.2 Qt中JSON类型

JSON是一种存储结构化数据的格式。它具有6种基本数据类型:

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

值可以具有上述任何类型。布尔值由JSON中的true或false字符串表示。JSON并未明确指定数字的有效范围,但是Qt中的支持仅限于有效范围和双精度。字符串可以是任何有效的unicode字符串。数组是值的列表,而对象是键/值对的集合。对象中的所有键都是字符串,并且对象不能包含任何重复的键。

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文档是数组或对象,因此文档始终以方括号或大括号开头。

3. JSON类

QT4中使用第三方库QJson解析JSON文件。

QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中。

QT5新增加如下七个相关类:

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值