美文网首页
C++ Json工具库获取以及功能函数演示样例

C++ Json工具库获取以及功能函数演示样例

作者: Aliven888 | 来源:发表于2020-08-06 14:28 被阅读0次

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888

演示样例环境

编译环境:vs 2015 + Qt_5.9.6 x86 Release
开发环境:windows 7
Json开源库:JsonCpp (获取路径:https://sourceforge.net/projects/jsoncpp/

演示样例

/*****************************************************
 * 功 能 : Json 工具库 演示函数
 *
 * 返回值:void
 *
 * 参  数:无
 *
 * 说 明:无
 *
 * 时 间:2020-08-02
 *
 * 作 者:Aliven888
*****************************************************/
void QtGuiApplication::onTestJsonAction()
{
    qDebug("Json show... ");

    do
    {
        //生成json
        Json::Value JsonValue;
        Json::Value JsonUtil;

        //赋值 常用数据类型
        JsonValue["sting"] = "string";
        JsonValue["bool"] = true;
        JsonValue["int"] = 1;
        JsonValue["double"] = 1.2;

        //添加列表
        JsonUtil["a"] = "a";
        JsonUtil["b"] = "b";
        JsonValue["data"].append(JsonUtil);
        JsonUtil.clear();  //清理缓存
        JsonUtil["a"] = "c";
        JsonUtil["b"] = "d";
        JsonValue["data"].append(JsonUtil);

        //Qt 打印
        qDebug("current json is [%s]", JsonValue.toStyledString().c_str());

        //解析json
        std::string strJson = JsonValue.toStyledString().c_str();
        Json::Reader read;
        Json::Value Json1;
        if (!read.parse(strJson, Json1, true))
        {
            qDebug("parse json is err [%s]", strJson.c_str());
            break;
        }

        //取值 常用数据类型
        std::string strValue =  JsonValue["sting"].asString();
        bool bValue = JsonValue["bool"].asBool();
        int iValue = JsonValue["int"].asInt();
        double dbValue = JsonValue["double"].asDouble();

        //遍历列表
        Json::Value::iterator begin = JsonValue["data"].begin();
        Json::Value::iterator end = JsonValue["data"].end();
        for (int i = 0; begin != end; ++begin,++i)
        {
            //使用索引 i 访问
            //qDebug("current value is [%s]", JsonValue["data"][i]["a"].asString().c_str());
            //qDebug("current value is [%s]", JsonValue["data"][i]["b"].asString().c_str());
        
            //使用迭代器访问
            JsonUtil.clear();
            JsonUtil = *begin;
            
            //参打印
            qDebug("current value is [%s]", JsonUtil["a"].asString().c_str());
            qDebug("current value is [%s]", JsonUtil["b"].asString().c_str());
        }

    } while (0);

}

运行输出结果:

运行输出结果

相关文章

网友评论

      本文标题:C++ Json工具库获取以及功能函数演示样例

      本文链接:https://www.haomeiwen.com/subject/zfxmrktx.html