首页 > 编程语言 > 详细

C++使用Jsoncpp源码

时间:2021-08-29 19:22:14      阅读:10      评论:0      收藏:0      [点我收藏+]

1、下载jsoncpp源码

https://github.com/open-source-parsers/jsoncpp

要注意版本

2、解压

技术分享图片

 

 

3、使用python生成直接使用的源码

使用python执行脚本

技术分享图片

 

 

4、生成dist文件夹

技术分享图片

 

 技术分享图片

 

 这就是可直接使用的源码

5、使用Qt新建工程,加入文件夹路径

技术分享图片

 

 

6、添加头文件

#include "jsoncpp.cpp"

一定是添加这个,添加其他报错

7、两个按钮回调函数

void MainWindow::on_pushButton_clicked()
{
    std::string jsonStr;
    Json::Value root, lang, mail;
    Json::StreamWriterBuilder writerBuilder;
    std::ostringstream os;

    root["Name"] = "Liming";
    root["Age"] = 26;

    lang[0] = "C++";
    lang[1] = "Java";
    root["Language"] = lang;

    mail["Netease"] = "lmshao@163.com";
    mail["Hotmail"] = "liming.shao@hotmail.com";
    root["E-mail"] = mail;

    std::unique_ptr<Json::StreamWriter> jsonWriter(writerBuilder.newStreamWriter());
    jsonWriter->write(root, &os);
    jsonStr = os.str();

    std::cout << "Json:\n" << jsonStr << std::endl;
}

void MainWindow::on_pushButton_2_clicked()
{
    std::string strValue = "{\"key\":\"value1\",\"array\":[{\"arraykey\":1},{\"arraykey\":2}]}";

    Json::Reader reader;
    Json::Value root;
    // reader将Json字符串解析到root,root将包含Json里所有子元素
    if (reader.parse(strValue, root))
    {
       if (!root["key"].isNull())
       {
        std::string strValue= root["key"].asString();
        std::cout << strValue<< std::endl;
      }
      Json::Value arrayObj = root["array"];
      for (int i=0; i<arrayObj.size(); i++)
      {
        int iarrayValue = arrayObj[i]["arraykey"].asInt();
        std::cout << iarrayValue << std::endl;
      }
    }
}

 

C++使用Jsoncpp源码

原文:https://www.cnblogs.com/judes/p/15193945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!