这是JsonCpp实例下载地址

参考地址1

参考地址2

遇到编译未通过,有个配置属性的 地址

解压后用vs打开makefiles文件夹,里面是jsoncpp和两个test的工程,jsoncpp如下红框中。

C++ 配置生成与解析Json

  编译jsoncpp项目,然后在程序目录的build文件夹下可以找到编译好的lib文件debug和release下的文件名不同,debug下是json_vc71_libmtd.lib,release下是json_vc71_libmt.lib

  想要在我们的项目中加入jsoncpp库也很简单,只要把jsoncpp的项目的.h文件和.lib文件加入到我们的项目中就可以了,注意引用目录,然后编译看看有没有错误。

-------------------------------------如果出现编译错误,请看这里,否则跳过虚线内容------------------------------------------

1.更改项目属性的运行库

C++ 配置生成与解析Json

2.Debug模式下编译,应该是没有错误的,如果出现链接错误或者是找不到文件,请查看文件路径设置对不对。需要注意的是Release模式下编译,

有可能会出现fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_writer.asm”: No such file or directory ,

我也出现了这个错误。后来在网上查找原因,好像是jsoncpp的项目编译设置的问题。需要在jsoncpp的项目设置中做如下修改:

C++ 配置生成与解析Json

----------------------------------------------------------------------------------------------------------------------------

  如下图为json解析过程。

C++ 配置生成与解析Json

const char* str = "{\"uploadid\": \"UP000000\",\"code\": 100,\"msg\": \"\",\"files\": \"\"}";  

    Json::Reader reader;  
    Json::Value root;  
    if (reader.parse(str, root))  // reader将Json字符串解析到root,root将包含Json里所有子元素  
    {  
        std::string upload_id = root["uploadid"].asString();  // 访问节点,upload_id = "UP000000"  
        int code = root["code"].asInt();    // 访问节点,code = 100  
    }  
如上图中代码

相关文章:

  • 2022-01-21
  • 2022-01-06
  • 2021-11-05
  • 2022-02-16
  • 2018-04-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-10
  • 2022-12-23
  • 2021-08-07
  • 2021-12-30
相关资源
相似解决方案