ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++使用Jsoncpp源码

2021-08-27 15:32:59  阅读:135  来源: 互联网

标签:lang std os C++ 源码 Jsoncpp mail root


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

 

标签:lang,std,os,C++,源码,Jsoncpp,mail,root
来源: https://www.cnblogs.com/judes/p/15193945.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有