zoukankan      html  css  js  c++  java
  • Qt5对Json的读写

     

    主要任务:通过Qt5完成对Json格式的文件的读写操作。

    ①首先读取json文件进行解析  ②对读取出来的东西判断是QJsonObject还是QJsonArray类型③对相应的类型根据提供的key去查找或者修改相对应的值

    主要技术:

    (1)     Qt中常见的读写文件代码

    读文件QString fileName = "D:Lib1.txt";QString str;QFile file(fileName);  

         if(!file.open(QIODevice::ReadOnly | QIODevice::Text))  

         {  

            QMessageBox::warning(this,"Warnning","can't open",QMessageBox::Yes);

         }  

     QTextStream in(&file);str=in.readLine();//读取一行//如果读取多行  

    QString str2[MAX];  

    for(int 1=0 ;i<MAX; i++)  

    str2[i]=in.readLine();  

    file.close();  

    写文件QStringfileName=“D:/Lib/1.txt"); 

    QStringstr="CSDN"; 

     QFile file(fileName); 

     if(!file.open(QIODevice::ReadWrite | QIODevice::Text)) 

     { 

        QMessageBox::warning(this,"sdf","can'topen",QMessageBox::Yes); 

     } 

      QTextStream in(&file); 

    in<<str<<" ";//如果写多行,同上循环即可 

    file.close 

    (2)     在Qt读写json中主要用到这几个类QJsonDocument、QJsonObject、QJsonArray

                       QJsonDocument:可以从一个基于文本表示的UTF-8编码,又可以从Qt自己的二进制格式读取和写入这个文件。QJsonDocument有效解析后的文档可以使用!iSNull()判断。使用isArray()和isObject()来判断是否包含一个数组或对象。文档中包含的数组或对象可以使用array()或object()进行检索,然后读取或操纵。

                       QJsonObject:用于封装JSON对象

                       JSON对象是键值对,其中键是唯一的字符串,其值由QJsonValue代表。一个QJsonObject可以从QVariantMap转换/被转换

                       QJsonArray: 用于封装JSON数组

    一个JSON数组列表值。该列表可以通过从阵列插入和移除QJsonValue的操纵。一个QJsonArray可以从QVariantList转换为/被转换

    代码优化:为了防止json文件过大,读取数据时,特别是键很长的时候需要花很多时间和内存,此时的解决方案最好通过设置一个中间层,这个中间层主要是通过一个map映射,把那些文件中的键缩短一个可以区分的标识,这样读写减少读取时间,但是这样会带来一个问题提供的标识往往不能完全区分文件中所有的键。

  • 相关阅读:
    Typescript中抽象类与接口详细对比与应用场景介绍
    html5手势操作与多指操作封装与Canvas图片裁切实战
    可编辑DIV与移动端软键盘兼容性问题汇总
    作业系统前端架构总结
    移动端滑屏全应用【四】移动端动画贞动画函数mTween封装
    移动端滑屏全应用【三】requestAnimationFrame的兼容与使用
    python2.7和python3.7的区别!
    通俗易懂地解释卷积
    傅里叶变换就是这么简单!
    大话傅里叶变换,通俗易懂!
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4812329.html
Copyright © 2011-2022 走看看