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种基本数据类型:
一个值可以表示成上述任何一种数据类型。此外,QJsonValue 有一个特殊的标志来表示未定义的值。这可以通过isUndefined()查询。
QJsonValue 本质上就是封装的数据,因为数据类型的不确定,我们就需要去确定具体的数据类型。
我们就可以使用 type() 或 isBool()、isString() 等访问器查询值的类型,我们最好在使用转换前要判断是否可以转换,不然容易出错误。
同样,可以使用 toBool()、toString()等方法将值转换为存储在其中的类型。然后就可以拿这个值去做自己想做的事就好啦。
值在内部是严格类型化的,与QVariant相反,它不会尝试进行任何隐式类型转换。这意味着转换为未存储在值中的类型将返回默认构造的返回值。