关于VC6.0中如何编译jsoncpp,jsoncpp这个开源项目的地址是:https://github.com/open-source-parsers/jsoncpp
JSON是什么http://blog.csdn.net/hzyong_c/article/details/7163589
参考了以下的这些文章
http://www.it165.net/pro/html/201404/13024.html
http://www.cppblog.com/wanghaiguang/archive/2013/12/26/205020.aspx
http://blog.csdn.net/guowenyan001/article/details/10378195

在这里尤其感谢这篇博文的作者:
http://www.hack590.com/article-63.hack

第一步:VC6.0新建一个如下图所示:


第二步:将下载下来的“jsoncpp-master.zip”解压,如下图所示:

第三步
a.复制jsoncpp目录中的,include/下的json目录到上面(第一步)的工程中,
b.复制jsoncpp目录中的src/lib_json中的文件到上面(第一步)的工程中,


第四步
a.在工程中将第三步中的“a”中的文件添加到Header Files中,
b.在工程中将第三步中的“b”中的.cpp文件添加到Source Files中,
c.在工程中将第三步中的“b”中的除.cpp文件外全部添加到Header Files中。
最终的目录结构如下图所示 :


关于上图所说的clear()替换成erase的参考如下 :
http://wenwen.sogou.com/z/q152374200.htm
http://bbs.csdn.net/topics/360194977

第五步:运行编译,会有如下错误提示:


解决方法参见此博文
http://zhidao.baidu.com/link?url=54DsT9oOSAYPNk2xKVGU0EF34VydL_7yRZ6ekTcHdTm7DusTkW5-ZVgScDegVcZnButK8aw8H7MDyU_t2VRdpa

第六步:编译通过后,会在工程相对应下的Debug或Release中出现一个与工程名相同的xxx.lib文件。复制这个文件到需要使用JSON的工程将复制jsoncpp下的include/中的json文件夹到工程目录中,即可使用。如下图所示:


如何使用JSONcpp网上,有很多的例子,我这里就随便举个例子吧。

C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "stdafx.h"
// 注意此处的路径
#include "json/json.h"
// 注意此处的文件名后缀
#include <string>
#include <iostream>
 
 
#pragma comment(lib,"tJson.lib")
 
using namespace std;
 
int main(int argc, char* argv[])
{
    std::string strValue = "{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\"},{\"key2\":\"value3\"},{\"key2\":\"value4\"}]}";
    Json::Reader reader;
    Json::Value value;
    if (reader.parse(strValue, value))
    {
        std::string out = value["key1"].asString();
        std::cout << out << std::endl;
        const Json::Value arrayObj = value["array"];
        for (int i=0;i<arrayObj.size();i++)
        {
            out = arrayObj[i]["key2"].asString();
            std::cout<<out;
            if (i != arrayObj.size() - 1)
            {
                std::cout << std::endl;
            }
        }
    }
    return 0;
}


上面的例子,会有如下一些错误,
第一:

解决此问题的博文
http://zhidao.baidu.com/link?url=c7GRzrRzH3irTRI5ZcZ0dmvzW2gcgEGa91KOu2ticVMloaTND-CuKRhWLlgrClAga0H6jdAHDFSKI7Rd7NrYa_
http://social.msdn.microsoft.com/Forums/vstudio/en-US/5f7eed6d-236a-4cce-952a-b771abc3b9e9/why-cout-is-not-a-member-of-std?forum=vclanguage
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐