• C++使用Jsoncpp源码


    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:
    " << 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;
          }
        }
    }



    长风破浪会有时,直挂云帆济沧海!
    可通过下方链接找到博主
    https://www.cnblogs.com/judes/p/10875138.html
  • 相关阅读:
    第十三周进度
    第十二周进度
    单词统计
    Vue——初级小项目(小清单)
    Vue——修饰符
    vue——表单输入绑定
    vue——计算属性和监听器
    vue——指令系统介绍
    面试笔试
    python之路——二分查找算法
  • 原文地址:https://www.cnblogs.com/judes/p/15193945.html
Copyright © 2020-2023  润新知