文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++ qt如何使用jsoncpp json进行读写操作

2023-06-21 21:06

关注

这篇文章将为大家详细讲解有关C++ qt如何使用jsoncpp json进行读写操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

JsonCpp的使用

项目需要c++下使用json,我选择了JsonCpp,官网是:https://github.com/open-source-parsers/jsoncpp。
解压后使用python编译出两个h文件和一个cpp文件:

(电脑需要安装python自己百度安装,这里就不说了)

安装python后,打开windows下cmd窗口,进入到jsoncpp文件夹  如图:

C++ qt如何使用jsoncpp json进行读写操作

执行命令:python amalgamate.py 就会生成dist文件夹 里面有 json.h json-forwards.h jsoncpp.cpp三个文件:如下

C++ qt如何使用jsoncpp json进行读写操作

将三个文件加入到工程即可使用,我是要qt进行测试使用:

C++ qt如何使用jsoncpp json进行读写操作

main.cpp如下

#include <iostream>#include <fstream>#include "dist/json/json.h"using namespace std; int main(int argc, char *argv[]){    // write    Json::Value people1;    people1["name"] = "Dione";    people1["sex"] = "男";    people1["age"] = 24;    people1["note"] = "jsoncpp write test!";     Json::Value people2;    people2["name"] = "Hulis";    people2["sex"] = "女";    people2["age"] = 22;    people2["note"] = "jsoncpp write test!";     Json::Value peoples;    peoples.append(people1);    peoples.append(people2);     Json::Value writeValue;    writeValue["classname"] = "三年一班";    writeValue["peoples"] = peoples;      Json::FastWriter fwriter;    std::string strf = fwriter.write(writeValue);    std::ofstream ofsf("example_fast_writer.json");    ofsf << strf;    ofsf.close();     Json::StyledWriter swriter;    std::string strs = swriter.write(writeValue);    std::ofstream ofss("example_styled_writer.json");    ofss << strs;    ofss.close();     // read    string strValue = "{\"key1\":\"111\",\"array\":[{\"key2\":\"222\"},{\"key2\":\"333\"},{\"key2\":\"444\"}]}";    Json::Reader reader;    Json::Value root;    if (reader.parse(strValue, root))    {        std::string out = root["key1"].asString();        qDebug()<<QString::fromStdString(out);        Json::Value arrayObj = root["array"];        for (int i=0; i<arrayObj.size(); i++)        {            out = arrayObj[i]["key2"].asString();            qDebug()<<QString::fromStdString(out);        }    }     std::ifstream ifs("example_fast_writer.json");    if (reader.parse(ifs, root))    {        std::string out = root["classname"].asString();        qDebug()<<QString::fromStdString(out);        Json::Value peoples = root["peoples"];        for (int i=0; i<peoples.size(); i++)        {            qDebug()<<QString::fromStdString(peoples[i]["name"].asString());            qDebug()<<QString::fromStdString(peoples[i]["sex"].asString());            qDebug()<<QString::fromStdString(peoples[i]["age"].asString());            qDebug()<<QString::fromStdString(peoples[i]["note"].asString());        }    }     return 0;}

会生成两个json文件,一个是没有格式写入一个是有格式写入,如下:

C++ qt如何使用jsoncpp json进行读写操作

关于C++ qt如何使用jsoncpp json进行读写操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯