• Qt扫盲-QJsonValue理论总结


    QJsonValue理论总结

    一、概述

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

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

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

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

    同样的 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"}]
    
    • 1
    {
        "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",
            }]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    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相反,它不会尝试进行任何隐式类型转换。这意味着转换为未存储在值中的类型将返回默认构造的返回值。

  • 相关阅读:
    做项目必读的vue3基础知识
    【C语言】三种版本的通讯录小项目的实现(含源码)
    GDPU 数据结构 天码行空2
    Qt ARM+Linux平台调用一个库的时候,报错“Bus error”
    Nacos注册中心11-Server端(处理服务发现请求)
    Jmeter压力测试工具,下载、安装、汉化超详细教程
    vs2019+qgis+qt学习总结
    如何使用SOLIDWORKS添加装饰螺纹线规格
    CDN技术介绍
    原生小程序小话题——自定义组件1
  • 原文地址:https://blog.csdn.net/qq_43680827/article/details/133848959