jsoncpp 库的使用方法

1. 下载jsoncpp,地址: http://sourceforge.net/projects/jsoncpp/

2. 编译jsoncpp:

jsoncpp文件中提供了vs71的工程文件以及makerelease.py文件,用来编译,里面分为jsontest、lib_json、test_lib_json三个工程,按照自己需要的编译。

注意:如果使用VS认的编译选项MTd或者MT,在使用json_libmtd.lib的时候可能会出现LNK2038错误(我使用的VS2012vc110环境)所以请修改MTD为MDd,MT为MD

3.lib库添加进VS工程中:
3.1 把json.h 等头文件拷到项目文件夹,并INCLUDE到项目中。
3.2 右键工程 》 属性 》配置属性链接器 》常规 》附加库目录 添加静态库的目录。
3.3 右键工程 》 属性 》配置属性链接器 》输入 》附加依赖项 添加json_vc71_libmt.lib 。


完成,可以在项目中使用JSONCPP库了。



错误解决

问题:

..json_value.cpp : fatal error C1083: 无法打开编译器生成文件:“../../build/vs71/release/lib_json\json_value.asm”: No such file or directory

方法修改生成静态文件的工程的属性:路径为:菜单---项目--属性---配置属性---c/c++---输出文件---汇编程序输出:无列表

void readJson() {

    using namespace std;

    std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"PHP\":\"support\"}]}";



    Json::Reader reader;

    Json::Value value;



    if (reader.parse(strValue,value))

    {   

        std::string out = value["name"].asstring();

        std::cout << out << std::endl;

        const Json::Value arrayObj = value["array"];

        for (unsigned int i = 0; i < arrayObj.size(); i++)

        {   

            if (!arrayObj[i].isMember("cpp")) 

                continue;

            out = arrayObj[i]["cpp"].asstring();

            std::cout << out;

            if (i != (arrayObj.size() - 1)) 

                std::cout << std::endl;

        }   

    }   

}

参考文章
http://www.cnblogs.com/ppboy_dxh/archive/2011/03/03/1970290.html

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...