C++ 解析json串

Posted 我是张洪铭我是熊博士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 解析json串相关的知识,希望对你有一定的参考价值。

首先, C++ 解析json串,需要用到第三方库(json_vc71_libmtd.lib)。然后,VS2010,创建项目json_read, 配置项目属性。最后,拷贝下面的代码就可以看到效果了。

#include "stdafx.h"
#include "../json/include/json.h"

int _tmain(int argc, _TCHAR* argv[])
{
    const char * str = "{\\"machineCode\\":\\"20:20:20:20:20:20:57:4c:31:30:59:31:4d:56\\",\\"makeTime\\":1534485879,\\"sysCapacity\\":{\\"rptMaxNum\\":2},\\"trialTime\\":30}";
    printf("json 串:%s\\n", str);

    Json::Reader reader;
    Json::Value  root;
    if(reader.parse(str,root))
    {
        std::string machineCode = root["machineCode"].asString();
        long long makeTime  = root["makeTime"].asUInt();
        int rptMaxNum = root["rptMaxNum"].asInt();
        int trialTime = root["trialTime"].asInt();

        printf("解析json串之后的值:\\n");
        printf("machineCode = %s\\n",machineCode.c_str());
        printf("makeTime = %ld\\n",makeTime);
        printf("rptMaxNum = %d\\n",rptMaxNum);
        printf("trialTIme = %d\\n",trialTime);

        Json::Value  & sysCapacity = root["sysCapacity"];
        int rpt = sysCapacity["rptMaxNum"].asInt();
        printf("rptMaxNum = %d\\n",rpt);
    }
    system("pause");
    return 0;
}

 

附I:json在线格式化工具

附II:项目用到第三方库资源,有库,有头文件的时候,建议分类创建一个文件夹,便于阅读和重用。

 

 

附录III:运行结果

 

以上是关于C++ 解析json串的主要内容,如果未能解决你的问题,请参考以下文章

cJSON解析

片段中的 JSON 解析 [关闭]

序列化后的json串与解析json串实体间的关系

Gson 解析 json串过长就报错,解析10条没问题,解析20条就错

JsonCpp 的使用

解析:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项