Qt学习--Qt Plugin创建及调用4(元信息metaData)

Qt Plugin创建及调用4(元信息metaData)

JSON 与Qt插件的元信息 MetaData

Qt插件的源码中,基本都能见到一个 xxx.json 的文件,这个文件中通常只包含一句:

{
    "Keys": [ "yyy" ]
}

我们可以猜到这个文件中的”Keys”应该是指定了与插件相关的关键字。那这个 .json 文件到底是如何起作用的?先来认识一下 JSON 。

JSON是一种存储结构化数据的格式,它有6中基本数据类型,分别是:

  • bool 布尔型,取值可以是 true 或 false
  • double 数字类型
  • string 字符串类型
  • array 数组类型
  • object 对象类型
  • null 空类型

具体可参见 Qt Assistant 中关于”JSON Support in Qt “的介绍。

A simple JSON document encoding a person, his/her age, address and phone numbers could look like:

1. {  
2.     "FirstName": "John",    # FirstName是变量(字段)的名称;John是变量的值  
3.     "LastName": "Doe",  
4.     "Age": 43,  
5.     "Address": {  
6.         "Street": "Downing Street 10",  
7.         "City": "London",  
8.         "Country": "Great Britain"  
9.     },  
10.     "Phone numbers": [  
11.         "+44 1234567",  
12.         "+44 2345678"  
13.     ]  
14. }

值得一提的是,数组类型的字段在.json文件中赋值时应该用方括号 ‘[’ 和 ‘]’ 括起来,对象类型的字段在赋值时应用花括号 ‘{’ 和 ‘}’ 括起来,普通类型的数据则不需要括。每一个 .json 文件描述了一个 JSON对象,而一个JSON对象中的对象类型字段,又可以看做是一个子JSON对象(JSON对象的嵌套)。

.json在Qt插件中主要用于存储Qt插件的元信息(metaData),在Qt中,有一个专门的类 QJsonObject 来描述一个JSON。

Qt中的JSON相关类

QJsonArray Encapsulates a JSON array 封装JSON数组
QJsonDocument Way to read and write JSON documents 读取和写入JSON文本的方式
QJsonObject Encapsulates a JSON object 封装JSON对象
QJsonObject::iterator QJsonObject::iterator class provides an STL-style non-const iterator for QJsonObject JSON迭代器
QJsonObject::const_iterator QJsonObject::const_iterator class provides an STL-style const iterator for QJsonObject JSON const迭代器
QJsonParseError Used to report errors during JSON parsing 用于报告JSON解析期间的错误
QJsonValue Encapsulates a value in JSON 封装JSON中的值

你可能感兴趣的:(Qt)