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

  • 相关阅读:
    Unity3d中Scene场景2D模式下放大后UI元素后不显示的问题
    我的2023年:程序员的自我迭代、技术复盘与生活点滴
    C++ 11 智能指针
    Jenkins构建 Maven项目(微服务)并自动发布
    Termius 8.4.0(多协议远程管理软件)
    【附源码】Python计算机毕业设计社区防疫信息管理系统
    基于java的医院微信小程序
    刷题第3天(中等题):LeetCode707--设计链表--练习单链表和双链表的增删查操作
    香港服务器在国内访问太慢怎么能提高?
    重磅发布 | 更快、更强的 .NET 7
  • 原文地址:https://blog.csdn.net/qq_43680827/article/details/133848959