QT5 - ubuntu18 -JSON 菜鸟学习

打印 上一主题 下一主题

主题 972|帖子 972|积分 2916

JSON 常用类

1、QJsonDocument

QJsonDocument 类用于读和写 JSON 文档。
一个 JSON 文档可以使用 QJsonDocument::fromJson() 从基于文本的表示转化为 QJsonDocument, toJson() 则可以反向转化为文本。分析器非常快且高效,并将 JSON 转换为 Qt 使用的二进制表示。
已分析文档的有用性,可以使用 !isNull() 进行查询。
如果要查询一个 JSON 文档是否包罗一个数组或一个对象,使用 isArray() 和 isObject()。包罗在文档中的数组或对象可以使用 array() 或 object() 检索,然后读取或操纵。
也可以使用 fromBinaryData() 或 fromRawData() 从存储的二进制表示创建来 JSON 文档。 
2、QJsonArray

QJsonArray 类封装了一个 JSON 数组。
JSON 数组是值的列表。列表可以被操纵,通过从数组中插入和删除 QJsonValue 。
一个 QJsonArray 可以和一个 QVariantList 相互转换。可以使用 size() 来查询条目的数量,通过 insert() 在指定索引处插入值,removeAt() 来删除指定索引的值。 
3、QJsonObject

QJsonObject 类封装了一个 JSON 对象。
一个 JSON 对象是一个“key/value 对”列表,key 是独一无二的字符串,value 由一个 QJsonValue 表示。
一个 QJsonObject 可以和一个 QVariantMap 相互转换。可以使用 size() 来查询“key/value 对”的数量,通过 insert() 插入“key/value 对”, remove() 删除指定的 key。 
4、QJsonValue

QJsonValue 类封装了一个值。
JSON 中的值有 6 种基本数据范例:
bool(QJsonValue::Bool)
double(QJsonValue:ouble)
string(QJsonValue::String)
array(QJsonValue::Array)
object(QJsonValue::Object)
null(QJsonValue::Null)
一个值可以由任何上述数据范例表示。此外,QJsonValue 有一个特殊的标志来表示未定义的值,可以使用 isUndefined() 查询。
值的范例可以通过 type() 或 isBool()、isString() 等访问函数查询。同样地,值可以通过 toBool()、toString() 等函数转化成相应的存储范例。 
5、QJsonParseError

QJsonParseError 类用于在 JSON 分析中报告错误。
枚举 QJsonParseError:arseError:
该枚举形貌 JSON 文档在分析过程中所发生的错误范例。

6、json文件标识解释

       所有的vale范例判断,都可以使用isNull  isBool  isDouble  isString isArray isObject 进行判断,进行无线套娃分析。
        对于JSON来说,就是键值对,key为字符串,value为无限嵌套的各种范例。
1、花括弧 表示对象,使用QJsonObject
{
  ... ... 
}
2、中括弧 标识为数组 使用 QJsonArray 
[
... ... 
]
3、如果 :“ ” 标识字符串 通过isString() 进行判断
例如:
QStringList keys = objectRoot.keys();
 for(auto key:keys)
{      
        QJsonValue jsonValue = objectRoot.value(key);
         if(jsonValue.isString())
        {
                qDebug() <<__FILE__ <<__LINE__ << key << ": " << jsonValue.toString();
        }
        //其他判断:isNull  isBool  isDouble  isString isArray isObject
}
4、也可以理解为递归调用的逻辑,遇到object就会进行isNull  isBool  isDouble  isString isArray isObject判断和处理,直到最后的一个object分析完毕。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表