Qt扫盲-QJsonValue理论总结

QJsonValue理论总结

  • 一、概述
  • 二、常用操作

一、概述

QJsonValue类将一个值封装在JSON中。用的是键值对去索引数据的,键就是字符串,值就是我们要用的数据。在Qt里用的是 QJsonValue 表示数据。

就像下面的 total 是键,对应的 200就是他的值

像 doc 就是 取的对应的数据值

{"book":"青年大学习","remark":"今天就学完"}

同样的 data 对应的数据

[{"avatar":"http://dummyimage.com/498x200.png/6e4a6b/247832","logo":"http://dummyimage.com/100x200.png/0a257b/2a1f0c"},{"avatar":"http://dummyimage.com/498x200.png/6e4a6b/247832","logo":"http://dummyimage.com/100x200.png/0a257b/2a1f0c"},{"avatar":"http://dummyimage.com/498x200.png/6e4a6b/247832","logo":"http://dummyimage.com/100x200.png/0a257b/2a1f0c"}]
{
    "total": 200,
    "doc": {
		"book": "青年大学习", 
		"remark": "今天就学完"
    },
    "data": [
        {
            "avatar": "http://dummyimage.com/498x200.png/6e4a6b/247832",
            "logo": "http://dummyimage.com/100x200.png/0a257b/2a1f0c",
        },
        {
            "avatar": "http://dummyimage.com/498x200.png/6e4a6b/247832",
            "logo": "http://dummyimage.com/100x200.png/0a257b/2a1f0c",
        },
        {
            "avatar": "http://dummyimage.com/498x200.png/6e4a6b/247832",
            "logo": "http://dummyimage.com/100x200.png/0a257b/2a1f0c",
        }]
}

JSON是一种存储结构化数据的格式。JSON中的值可以是6种基本类型之一,一共有6种基本数据类型:

  • bool QJsonValue::Bool
  • double QJsonValue::Double
  • string QJsonValue::String
  • array QJsonValue::Array
  • object QJsonValue::Object
  • null QJsonValue::Null
  • QJsonValue::Undefined
    特殊的无定义数据。

一个值可以表示成上述任何一种数据类型。此外,QJsonValue 有一个特殊的标志来表示未定义的值。这可以通过isUndefined()查询。

二、常用操作

QJsonValue 本质上就是封装的数据,因为数据类型的不确定,我们就需要去确定具体的数据类型。

我们就可以使用 type() 或 isBool()、isString() 等访问器查询值的类型,我们最好在使用转换前要判断是否可以转换,不然容易出错误。

同样,可以使用 toBool()、toString()等方法将值转换为存储在其中的类型。然后就可以拿这个值去做自己想做的事就好啦。

值在内部是严格类型化的,与QVariant相反,它不会尝试进行任何隐式类型转换。这意味着转换为未存储在值中的类型将返回默认构造的返回值。

你可能感兴趣的:(#,▶,Qt扫盲,QJsonValue,qt处理JSON,json,qt5)