VC下使用JSONCPP(json)

来源:互联网 发布:java导出xlsx工具类 编辑:程序博客网 时间:2024/05/16 09:59

Jsoncpp

下载源代码,设置环境如下,这个环境要和调用jsoncpp的应用程序的环境相同,debug和relese不同,要修改,关于release,文章最后有说明


测试代码如下:拷贝json.的头文件和库文件到当前项目工程目录下

// demo2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#pragma  comment(lib,"json_vc71_libmtd.lib")#include "json/json.h"int _tmain(int argc, _TCHAR* argv[]){Json::Value root;Json::Value person;person["name"]="hello world";person["age"]=12;root.append(person);person["name"]="json";person["age"]=13;root.append(person);std::string name;int age;int size=root.size();for (int i=0;i<size;i++){name=root[i]["name"].asString();age=root[i]["age"].asInt();std::cout<<name<<"  "<<age<<std::endl;}Json::FastWriter fw;std::cout<<fw.write(root)<<std::endl;std::string msg=fw.write(root);//反序列化Json ::Reader freader;Json::Value rootr;freader.parse(msg,rootr);for (int i=0;i<size;i++){name=root[i]["name"].asString();age=root[i]["age"].asInt();std::cout<<name<<"  "<<age<<std::endl;}    //获取key,只有root[0],root[1]中的元素才有key    Json::Value::Members members(root[1].getMemberNames());    for (Json::Value::Members::iterator it = members.begin(); it != members.end(); ++it)      {        const std::string &key = *it;        const std::string valueTemp=root[i][key].asString();        std::cout<<key<<std::endl;    }//Ctrl+F5 编译运行return 0;}

另外,在release版本中,如果出现如下错误

1>正在生成代码
1>e:\Source\VC\Զ\json\jsoncpp-src-0.6.0-rc2\src\lib_json\json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”: No such file or directory
1>LINK : fatal error LNK1257: 代码生成失败

请参考http://bbs.csdn.net/topics/380043500

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


原创粉丝点击