精华内容
下载资源
问答
  • QT解析JSON文件

    2018-04-25 17:55:39
    JSON文件内容:{ "asa": "123", "Data": "234"}函数:void param::read() {  QByteArray val; QFile file; file.setFileName(QCoreApplication::applicationDirPath()...

    JSON文件内容:

    {
      "asa": "123",
      "Data": "234"

    }

    函数:

    void param::read()
    {
            QByteArray val;
    	QFile file;
    	file.setFileName(QCoreApplication::applicationDirPath() + "/json1.json");//加载文件
    	bool open =file.open(QIODevice::ReadOnly | QIODevice::Text);
    	val = file.readAll();
    	file.close();
    
    	QJsonParseError jsoneror;
    	QJsonDocument json1 = QJsonDocument::fromJson(val, &jsoneror);
    	if (jsoneror.error == QJsonParseError::NoError)
    	{
    		if (json1.isObject())
    		{
    			QJsonObject toot = json1.object();
    			QString qq = toot.value("asa").toString();
    			QJsonValue valueArry = toot.value("Data");			
    		}
    	}
    }

    展开全文
  • QtJSON文件解析

    2020-04-23 18:30:47
    目录JSON介绍将json文件放置在根目录下QJson转换根据自己需求提取JSON编译输出JSON文件信息获取网络图片提取JSON显示在UI组件上建立读取JSON文件槽函数建立槽函数连接 JSON介绍 JSON全程JavaScript Object Notation...

    JSON介绍

    JSON全程JavaScript Object Notation,作为一种轻量级的数据交换格式,正在逐步取代xml,成为网络数据的通用格式。以大括号作为起止符,实质是不排序的键值对。其中键要求是QString类型,值可以是任意类型。

    将json文件放置在根目录下

    在这里插入图片描述

    QJson转换

    将打开的QJson文件类型为QByteArray转换成QJsonDocument对象;将QJsonDocument对象转换成QJsonObject对象;将QJsonObject对象转换成 QJsonArray数组 。

    	QByteArray fileDate = file.readAll();
            //将QByteArray转换成QJsonDocument
            QJsonDocument fileDoc = QJsonDocument::fromJson(fileDate);
            //根据服务器或者josn文件的json数组格式,判断是jsonObject还是jsonArray
            QJsonObject object = fileDoc.object();
            //通过key来读取数据
            QJsonArray resultArray = object.value("result").toArray();
            //QJsonArray也是一个数组

    根据自己需求提取JSON

    **截取部分json文件**
    {
        "resultcode": "200",
        "reason": "成功的返回",
        "result": [
            {
                "movieid": "10641",
                "rating": "7.3",
                "genres": "动作/惊悚/科幻",
                "runtime": "139 min",
                "language": "英语/法语/日语",
                "title": "哥斯拉",
                "poster": "http://v.juhe.cn/movie/img?5146",
                "writers": "迪安·德夫林,罗兰·艾默里奇,...",
                "film_locations": "美国",
                "directors": "罗兰·艾默里奇",
                "rating_count": "3191",
                "actors": "马修·布罗德里克 Matthew Broderick,让·雷诺 Jean Reno,玛丽亚·皮提罗 Maria Pitillo,汉克·阿扎利亚 Hank Azaria",
                "plot_simple": "一道亮光划过天际,太平洋上波涛汹涌,海浪以不可思议的速度将一架货机卷入海里;巴哈马丛林中,出现了巨大的脚印;一股神秘的力量一直朝纽约而来,这座人口稠密的都市即将受到这个怪兽“哥斯拉”的袭击。“哥斯拉”是因为核试验造成气..",
                "year": "1998",
                "country": "美国",
                "type": "null",
                "release_date": "19980518",
                "also_known_as": "酷斯拉,怪兽哥斯拉"
            },
            {
                "movieid": "133175",
                "rating": "-1",
                "genres": "动画/短片/喜剧",
                "runtime": "2 min",
                "language": "无",
                "title": "小鹿斑比遇见哥斯拉",
                "poster": "http://v.juhe.cn/movie/img?14923",
                "writers": "Marv Newland",
                "film_locations": "加拿大",
                "directors": "Marv Newland",
                "rating_count": "7",
                "actors": "",
                "plot_simple": "null",
                "year": "1969",
                "country": "加拿大",
                "type": "null",
                "release_date": "20090418",
                "also_known_as": ""
            },

    编译输出JSON文件信息

    for(int i=0; i< resultArray.size(); i++)
            {
                QJsonObject resultObject = resultArray.at(i).toObject();
                QString genres           = resultObject.value("genres").toString();
                QString runtime          = resultObject.value("runtime").toString();
                QString language         = resultObject.value("language").toString();
                QString title            = resultObject.value("title").toString();
                QString poster           = resultObject.value("poster").toString();
                QString film_locations   = resultObject.value("film_locations").toString();
                qDebug() <<genres;
                qDebug() <<runtime;
                qDebug() <<language;
                qDebug() <<title;
                qDebug() <<poster;
                qDebug() <<film_locations;
            }

    在这里插入图片描述

    获取网络图片

    这里用到俩个类QNetworkRequest类QUr类l

    QUrl类:它可以解析和构造编码和非编码形式的url。QUrl还支持国际化域名(IDN)。使用QUrl最常见的方法是通过传递QString通过构造函数初始化它;否则,也可以使用setUrl()。URL可以用两种形式表示:编码的或未编码的。未编码的表示形式适合显示给用户,但编码的表示形式通常是发送给web服务器的内容。例如,未编码的URL“http://bühler.example.com/List of applicators.xml”将作为“http://xn–bhler kva.example.com/List%20of%20applicators.xml”发送到服务器。

    QNetworkRequest类: QNetworkRequest类保存要用QNetworkAccessManager发送的请求。QNetworkRequest是网络访问API的一部分,它是一个类,包含通过网络发送请求所需的信息。它包含一个URL和一些可以用来修改请求的辅助信息。

    提取JSON显示在UI组件上

      QJsonObject resultObject = resultArray.at(5).toObject();
            QString genres           = resultObject.value("genres").toString();
            QString runtime          = resultObject.value("runtime").toString();
            QString language         = resultObject.value("language").toString();
            QString title            = resultObject.value("title").toString();
            QString poster           = resultObject.value("poster").toString();
            QString film_locations   = resultObject.value("film_locations").toString();
    
    
            ui->genresLabel->setText(genres);
            ui->runtimeLabel->setText(runtime);
            ui->languageLabel->setText(language);
            ui->titleLabel->setText(title);
            ui->posterLabel->setText(poster);
            ui->film_locationsLabel->setText(film_locations);

    建立读取JSON文件槽函数

    void JsonFile::readDate(QNetworkReply*reply)
    {
        QByteArray array = reply->readAll();
        QPixmap mmp;
        mmp.loadFromData(array);//loadFromData:是一个重载函数,使用指定的格式和转换标志从二进制数据加载pixmap
        ui->posterLabel->setPixmap(mmp);
    }

    建立槽函数连接

     //当请求的网络完成时,会发送一个finished信号
    connect(&manger,&QNetworkAccessManager::finished,this,&JsonFile::readDate);
    ```![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042318291921.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU4NTc1MQ==,size_16,color_FFFFFF,t_70)
    
    
    展开全文
  • qt读取json文件

    千次阅读 2019-09-02 16:57:14
    (1)JSON文件(config.json) { "autor": "yudabo"...

    (1)JSON文件(config.json)

    
     
    1. {
    2. "autor": "yudabo",
    3. "staff":[
    4. { "name": "于大博1"},
    5. { "name": "于大博2"},
    6. { "name": "于大博3"},
    7. { "name": "于大博4"},
    8. { "name": "于大博5"},
    9. { "name": "于大博6"},
    10. { "name": "于大博7"},
    11. { "name": "于大博8"},
    12. { "name": "于大博9"},
    13. { "name": "于大博10"}
    14. ],
    15. "data": { "name": "yudabo" }
    16. }


    (2)解析文件

    
     
    1. QFile file("config.json");
    2. file.open(QIODevice: :ReadOnly | QIODevice: :Text);
    3. QString value = file.readAll();
    4. file.close();
    5. QJsonParseError parseJsonErr;
    6. QJsonDocument document = QJsonDocument: :fromJson( value.toUtf8(), &parseJsonErr);
    7. if (! (parseJsonErr.error == QJsonParseError: :NoError)) {
    8. QMessageBox: :about(NULL, "提示", "配置文件错误!");
    9. return;
    10. }
    11. QJsonObject jsonObject = document. object();
    12. /*
    13. // autor字段
    14. qDebug()<< "jsonObject[autor]==" << jsonObject["autor"].toString();
    15. */
    16. // staff字段
    17. if (jsonObject.contains(QStringLiteral( "staff"))) {
    18. QJsonValue arrayValue = jsonObject. value(QStringLiteral( "staff"));
    19. if (arrayValue.isArray()) {
    20. QJsonArray array = arrayValue.toArray();
    21. for ( int i = 0; i < array.size(); i++) {
    22. QJsonValue nameArray = array.at(i);
    23. QJsonObject key = nameArray.toObject();
    24. qDebug() << "key[name]==" << key[ "name"].toString();
    25. }
    26. }
    27. }
    28. // data字段
    29. QJsonValue jsonDataValue = jsonObject. value(QStringLiteral( "data"));
    30. QJsonObject jsonData = jsonDataValue.toObject();
    31. qDebug()<< "jsonData [name]==" << jsonData [ "name"].toString();

    补充json文件写入

    在这里插入代码片`
    	 QJsonObject obj;
         QJsonObject sub;
        sub.insert("ip",QJsonValue("192.168.0.1"));
         sub.insert("port",QJsonValue("8080"));
         obj.insert("server",QJsonValue(sub));
         //内存中的数据写到文件
         QJsonDocument doc(obj);
         //将json对象转换成字符串
         QByteArray data=doc.toJson();
         QFile file("temo.json");
         file.open(QIODevice::WriteOnly);
         file.write(data);
         file.close();
    
    展开全文
  • Qt读写json文件

    2019-10-07 10:40:07
    json文件 1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include<QJsonDocument> 4 #include<QJsonObject> 5 #include<QJsonArray> 6 #include<QFile> 7.....

    写json文件

     1 #include "mainwindow.h"
     2 #include "ui_mainwindow.h"
     3 #include<QJsonDocument>
     4 #include<QJsonObject>
     5 #include<QJsonArray>
     6 #include<QFile>
     7 MainWindow::MainWindow(QWidget *parent) :
     8     QMainWindow(parent),
     9     ui(new Ui::MainWindow)
    10 {
    11     ui->setupUi(this);
    12     //创建json对象
    13     QJsonObject obj;
    14     QJsonObject sub;
    15     sub.insert("ip",QJsonValue("192.168.0.1"));
    16     sub.insert("port",QJsonValue("8080"));
    17     obj.insert("server",QJsonValue(sub));
    18 
    19      //内存中的数据写到文件
    20     QJsonDocument doc(obj);
    21     //将json对象转换成字符串
    22     QByteArray data=doc.toJson();
    23     QFile file("temo.json");
    24     file.open(QIODevice::WriteOnly);
    25     file.write(data);
    26     file.close();
    27 }
    28 
    29 MainWindow::~MainWindow()
    30 {
    31     delete ui;
    32 }

     读json文件

     1  //打开文件
     2     QFile file("C:\\conf.json");
     3     file.open(QIODevice::ReadOnly);
     4     QByteArray data=file.readAll();
     5     file.close();
     6     //使用json文件对象加载字符串
     7     QJsonDocument doc=QJsonDocument::fromJson(data);
     8     //判断是否对象
     9     if(doc.isObject())
    10     {
    11         //把json文档转换为json对象
    12         QJsonObject obj=doc.object();
    13         QJsonValue value=obj.value("server");
    14         if(value.isObject())
    15         {
    16             QJsonObject subobj=value.toObject();
    17             //取值
    18             QString ip=subobj.value("ip").toString();
    19             QString port=subobj.value("port").toString();
    20             qDebug()<<ip<<port;
    21         }
    22     }

     

    转载于:https://www.cnblogs.com/sclu/p/11348723.html

    展开全文
  • 使用Qt读写JSON文件(一)——简单的写入文件

    万次阅读 多人点赞 2018-12-18 20:07:00
    介绍使用Qt读写JSON文件。如果你对JSON不是很了解,请阅读我之前的一篇文章json简介。 使用的开发环境为: Qt 5.12.0+Deepin 15.8 在Qt中与JSON相关的类有以下几个,Q=QJsonDocument,QJsonArray,QJsonObject,...
  • QT读取JSON文件并解析

    千次阅读 2019-01-08 14:20:51
    (1)JSON文件(config.json) { "autor": "yudabo", "staff":[ {"name":"于大博1"}, {"name":"于大博2"}, {"name":"于大博3"}, {"name":"于大博4"}, {"name":"于大博5"}, {"n...
  • QT QML JSON文件的解析和修改

    千次阅读 2020-04-26 09:50:06
    C++ 编写一个JSON类,完成对JSON文件数据的读写。注册为QML类型。 (1) JSON类头文件 #ifndef DJSON_H #define DJSON_H #include <QObject> #include <QJsonDocument> #include <QString> #...
  • Json
  • 1、新建qt工程,并放上一个按钮,需要加上头文件 #include<QJsonDocument> #include<QJsonObject> #include<QJsonArray> #include<QFile> 二、然后在构造函数中添加: //创建json对象...
  • Qt多级解析Json文件

    千次阅读 2016-08-17 15:17:01
    Qt多级解析Json文件Json文件范本我要从下面的文件中解析Cmd1中的Name中的值{ "CommandFamily": { "Name": "自定义指令集", "Cmd1": { "Name": "07", "Value": "hello world" }, "Cmd2":
  • 该示例演示如何保存和加载JSON格式文件,涉及到的类有:QJsonDocument, QJsonObject and QJsonArray. 2、说明 2.1 QJsonDocument QJsonDocument类提供了一种读取和写入JSON文档的方法。 使用QJsonDocument::fromJson...
  • //使用json文件对象加载字符串 QJsonDocument doc=QJsonDocument::fromJson(data); if(doc.isObject()) { //把json文档转换为json对象 QJsonObject obj=doc.object(); QJsonArray shapes=obj.value...
  • (1)The High-Level API:用于扩展Qt本身的功能,需放在Qt安装目录下的指定目录里; (2)The Lower-Level API:用于扩展Qt应用程序的功能; Qt Plugin按照类型又可分为两种:动态插件(dll)和静态插件(lib); ...
  • 提要 生成的json文件在程序加载解析时出现上述错误,究其原因是生成json文件过程中编码问题。
  • Qt 笔记2--Qt 操作 Json

    2019-03-23 21:24:09
    Qt 笔记2--Qt操作 Json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,其简洁和...
  • QtJSON 保存与读取

    万次阅读 2016-10-12 16:28:48
    简述许多游戏提供保存功能,使得玩家在游戏中的进度可以被保存,并在以后再玩的时候进行加载。保存游戏的过程通常涉及将每个游戏对象的成员变量序列化为文件。要实现这个功能,可以采取许多格式,其中之一就是 JSON ...
  • Qt 使用json数据

    千次阅读 2018-04-25 18:36:50
    json是一种轻便量级的数据交换格式,具有良好的可读和便于快速编写的特性。可以在不同的平台间进行...下面是qtjson格式数据的基本操作 QJsonArray 封装 JSON 数组 QJsonDocument 读写 JSON 文档 QJsonObject ...
  • QT解析JSON

    2015-01-07 13:40:03
    1、在pro文件中添加script,如右: QT += script 2、需要添加头文件#include 3、代码如下,代码str1为json数组,str2为json单个对象的字符串。 #include "json.h" #include #include int main(in
  • QT中对JSON文件进行读写并在Line Edit控件中初始化 最近公司在写关于QT的项目,我也从头学起,一些细小的东西也会记录下来 首先引用如下头文件 #include <QJsonDocument> #include <QJsonArray> #...
  • 1.QT 添加翻译文件: 添加qt工程软件的翻译文件: 然后选择对应的国家和语言即会生成ts文件,ts文件会自动识别已已添加tr的字段,例如tr("SimpChinese");...2.加载翻译文件: QTranslator translator;
  • QtJSON保存与读取

    2018-01-09 20:38:49
    许多游戏提供保存功能,使得玩家在游戏中的进度可以被保存,并在以后再玩的时候进行加载。保存游戏的过程通常涉及将每个游戏对象的成员变量序列化为文件。要实现这个功能,可以采取许多格式,其中之一就是 JSON - ...
  • JSON(JavaScriptObjectNotation)是一种轻量级的结构化数据格式,相对于XML语法更简洁。它具有6种基本数据类型:bool(true或false字符串表示)、double(对应JS中number)、string、array(值的列表)、object...
  • 1、Qt的Json的介绍 #include <... //json文件 #include <QJsonObject> //json对象 #include <QJsonArray> //QJsonObject数组 1>、Qt中Json的组装结构 /* QJsonDocument //整个双...
  • 原文地址::... 相关文章 1、Qt中使用Json----https://www.cnblogs.com/pinking/p/7931744.html 2、Qt之简单使用Json----https://blog.csdn.net/u010780613/article/details/50385...
  • 提要 当程序关闭后再次打开程序需要加载上一次的按钮名称设置。 示例 只提供主要部分

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,943
精华内容 1,577
关键字:

qt加载json文件