qt学习:json数据文件读取写入

这篇具有很好参考价值的文章主要介绍了qt学习:json数据文件读取写入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

什么是json

基本格式

例子  解析json文件数据到界面上

组合json数据文档对象


什么是json

json是一种轻量级的数据交互格式,简单来说,json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互

基本格式

以键值对的形式存放

  • 键-----字符串
  • 值------基本数据类型,字符串,json对象,json数组

例如

{
    “name":"xxx",
    "age":21
}

例子  解析json文件数据到界面上

json文件

{
    "error_code": 0,
    "reason": "Success",
    "result": {
        "data": [
            {
                "content": "有一天晚上我俩一起吃西瓜,老大把西瓜籽很整洁的吐在了一张纸上,\r\n过了几天,我从教室回但宿舍看到老大在磕瓜子,\r\n我就问他:老大,你什么时候买的瓜子?\r\n老大说:刚晒好,说着抓了一把要递给我……",
                "hashId": "bcc5fdc2fb6efc6db33fa242474f108a",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": ""我女朋友气跑了"\r\n"怎么回事?严重吗?你怎么着她了?"\r\n"不严重,我只是很久没用了"",
                "hashId": "03a6095c18e1d6fe7e2c19b2a20d03d1",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "还说神马来一场说走就走的旅行,\r\n工作后就连一场说走就走的下班都不行。",
                "hashId": "10edf75c1e7d0933c91f0f39a28a2c84",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "高速路上堵车,路边葡萄地里有一哥们竟然在偷葡萄,心想太没素质了吧!\r\n不管了我也去,刚溜进葡萄地,那哥们竟问我干嘛,\r\n我撇了一眼反问道你干嘛呢?\r\n那哥们答道摘葡萄呢!\r\n我答道:我也摘葡萄呢!\r\n哥们郁闷了说我摘我家的你呢?\r\n我顿时脸红,哥你家葡萄咋卖呢?",
                "hashId": "bb572bb5b4844badb31012983f7324f5",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "和老婆在街边散步,我手上捏着一张已揉成一团的传单,\r\n走了好一会终于看到个垃圾桶,我赶紧跑过去想扔掉,\r\n没想到老婆从后边一把拉住我说:老公,那个肯定吃不得了,别捡。\r\n我一愣,发现垃圾桶顶盖上放着半个西瓜。",
                "hashId": "7ebccd3bbfaf24e010f9eb3ee68234bd",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "某考生考了个倒数第一,回到家被他爸一顿暴揍,\r\n来到学校老师让他谈谈落后的体会,\r\n学生:“我终于明白了“落后就要挨打”的道理。”",
                "hashId": "4aee2aa6a79c67682f605c4146a8eca4",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "很多人不喜欢朝九晚五的生活,然后开始创业。\r\n最终,他的生活变成了朝五晚九。",
                "hashId": "7b358c4b96cf4a8d82b85545ea8f9603",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "钱这个东西,真是害人精。\r\n小到人与人之间的矛盾,大到国家之间的战争,无不是为了钱。\r\n钱可以把人推上万众瞩目之颠,也可以使人瞬间变成阶下囚。\r\n可是,富人们却没认识到,当钱几辈子花不完时,\r\n挣再多已经没有意义,还不如早日尽点社会责任,\r\n捐助给需要的人,求得个平安幸福。\r\n看到这个的有钱人们呐,你们什么时侯能捐我点啊!",
                "hashId": "94e18075f8c9c8211dfed5f8d6a62983",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "看到一句很好的名言:我们无法拉伸生命的长度,但是我们可以拓展生命的宽度。\r\n我觉得这句话太有道理了!\r\n意思就是:虽然我们无法再长高了,但是我们还可以继续长胖。",
                "hashId": "fd8e364a4c70d46e77c1610879748a9a",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            },
            {
                "content": "女生口中所说的“理工男好萌好棒好想嫁!”,\r\n其实理工男是指“会修电脑、会设置手机、会安家用电器、\r\n会帮做PPT打EXCEL表PS修图、话少、高冷、专一、不和乱七八糟的女生来往、\r\n不爱打扮却又干净清爽、高高瘦瘦、手指纤长、戴黑框眼镜超好看的帅哥”。\r\n其实找个帅哥让他学电脑,再戴个眼镜就OK了。",
                "hashId": "5001c08a3cc8a281b15c467bc15a4911",
                "unixtime": 1418814837,
                "updatetime": "2014-12-17 19:13:57"
            }
        ]
    }
}

加入头文件

#include <QJsonDocument> //json文档类
#include <QJsonObject> //json对象
#include <QJsonArray>  //json数组
#include <QJsonValue>  //json值
#include <QFile>
#include <QDebug>

代码

//1打开文件
    QFile file("./ke.json");
    bool ret = file.open(QIODevice::ReadOnly);
    if(ret == false)
    {
        qDebug()<<"open error";

    }
//2读取文件的内容
    QByteArray content = file.readAll();
//3关闭文件
    file.close();
//4将读取出来的普通文本内容 转换为  json文档对象
//使用QJsonDocument::fromJson()将JSON文档从其基于文本的表示转换为QJsonDocument。
    QJsonDocument doc = QJsonDocument::fromJson(content);
//5利用这个json文档对象 将其转换为 json对象
    QJsonObject object = doc.object();
//6利用json对象中的接口,通过键  就能得到值
//值 = object.value(键)
//得到 键 "result"  的值 ,该值 是一个json对象
    QJsonObject resultObject = object.value("result").toObject();
//7通过 键 "data"  得到 值 ,该值是一个json数组
    QJsonArray dataArray = resultObject.value("data").toArray();
//8遍历数组中的每个元素,每个都是都是json对象
    for(int i=0; i<dataArray.size(); i++)
    {
        //每个元素都是一个json对象
        QJsonObject item = dataArray.at(i).toObject();
        //将每个对象中的键 "content" 所对应的值  获取出来
        QString content = item.value("content").toString();
        //添加到界面上
        ui->textBrowser->append(content);
    }

例子 组合json数据文档对象

//1新建json对象{}
QJsonObject object0;
//2向json对象加入一个数据,{“aaa”:"111",“bbb”:1}
object0.insert("aaa",QJsonValue("111"));
object0.insert("bbb",QJsonValue(1));

//3再新建两个相同数据的对象
//{“ccc”:"222",“ddd”:2}
QJsonObject object1;
object1.insert("ccc",QJsonValue("222"));
object1.insert("ddd",QJsonValue(2));
//{“eee”:"222",“fff”:2}
QJsonObject object2;
object2.insert("eee",QJsonValue("333"));
object2.insert("fff",QJsonValue(3));

//4将三个对象放到数组里
//[{“aaa”:"111",“bbb”:1},{“ccc”:"222",“ddd”:2},{“eee”:"222",“fff”:2}]
//新建一个数组
QJsonArray array;
array.insert(0,object0);
array.insert(1,object1);
array.insert(2,object2);

//5新建一个对象,存放数组
//{“ggg”:[{“aaa”:"111",“bbb”:1},{“ccc”:"222",“ddd”:2},{“eee”:"222",“fff”:2}]}
QJsonObject object;
object.insert("ggg",QJsonValue(array));

//6转换为json文件对象
QJsonDocument doc(object);

//7将json对象转换成普通的文本数据
QByteArray content = doc.toJson();

//8打开文件
QFile file("./xxx.json");
file.open(QIODevice::ReadWrite);

//9写入文件
file.write(content);

//10关闭文件
file.close();

 文章来源地址https://www.toymoban.com/news/detail-821209.html

到了这里,关于qt学习:json数据文件读取写入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python读取写入数据到Excel文件

    【Linux干货教程】Ubuntu Linux 换源详细教程 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! Hello,各位看官老爷们好,洲洲已

    2024年02月12日
    浏览(46)
  • Unity之Json读取写入

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于传送数据。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使

    2024年02月05日
    浏览(40)
  • Python处理xlsx文件(读取、转为列表、新建、写入数据、保存)

    xlsxwriter**库对于xslx表的列数不做限制, xlrd 库不能写入超过65535行,256列的数据。 由于需要处理的数据行列数较多,遇到报错才发现库的限制问题,记录一下。

    2024年02月12日
    浏览(38)
  • Unity——写入和读取Json信息的方法

    首先在Unity的Assets目录下新建一个Plugins文件夹,引入LitJson.dll类库!!! 编写读写脚本时,还需要再导入命名空间 using LitJson 关于Litjson文件: 可以去官网下载一个文件包;.dll文件存在于  litjson-0.5.0/bin目录。   Litjson官网下载链接 :LitJSON download | SourceForge.net 具体操作:  先

    2023年04月08日
    浏览(34)
  • 读取JSON文件 如何在Unity中读取Json文件中的数据

    Josn是一种轻量级的数据交换格式,JSON能够描述四种简单的类型(字符串、数字、布尔值及null)和两种结构化类型(对象及数组),在Unity里经常用Json来处理大量的字符串,容易解析,效率非常快。 基本结构 1、语法 数据存在键值对中 数据由逗号分隔 花括号保存对象 方括号保存

    2024年02月15日
    浏览(30)
  • flink:通过table api把文件中读取的数据写入MySQL

    当写入数据到外部数据库时,Flink 会使用 DDL 中定义的主键。如果定义了主键,则连接器将以 upsert 模式工作,否则连接器将以 append 模式工作 文件info.txt

    2024年03月15日
    浏览(32)
  • 两种方式读取Json文件 数据

    首先下载LitJson.dll 文件,并将其拖入 Unity项目中的 的 Assets/Plugins目录中 其次在你的Unity项目中创建好Assets/StreamingAssets文件夹,用于存放文件 功能:将数据写入到文件中(可自由扩充),在程序运行时获取指定对象(这里 根据指定id 获取其对象数据)。 json文件中的数据参数

    2024年02月12日
    浏览(30)
  • .NET学习笔记----关于.NET Core那些事(3)【配置文件的读取、json文件的通用解析、读取静态文件】

    appsettings.json准备 控制器中读取json 定义与配置文件中需要获取的标签结构完全一致的实体类:IConfiguration .Bind() ----反序列化 要读取的json字符串 定义的实体类 读取json 用到的json字符串 == 用到的类 Startup.cs中的配置 控制器中的代码 运行结果 当我们用《关于.NET Core那些事(2)》

    2024年02月04日
    浏览(27)
  • 二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺

    在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后,发现HDFS文件中没问题,但是ODS层表中字段的数据却有问题,字段中的JSON数据不全 1、ODS层建静态分区外部表,Flume直接写入ODS层表的HDFS路径下 2、用get_json_object进行解析 注意 :使用JsonSerDe时,每行必须是一个完整

    2024年02月03日
    浏览(29)
  • Python:使用openpyxl读取Excel文件转为json数据

    openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files 文档 https://openpyxl.readthedocs.io/en/stable/ https://pypi.org/project/openpyxl/ 安装 环境 读取文件示例:将Excel文件读取为json数据 有如下一个文件 data.xlsx 实现代码 输出读取的json数据 读写示例

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包