Javascript

C++使用Jsoncpp源码

本文主要是介绍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:\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源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!