下载
jsoncpp 1.9.5 好像不支持scons编译了,使用cmake编译
原始仓库: https://github.com/open-source-parsers/jsoncpp gitee仓库:https://gitee.com/mirrors/jsoncpp/tree/master
选择版本下载
编译
搞到linux上解压执行cmake CMakeLists.txt ,发现了编译攻略:
按照上面的操作: 创建目录:
注:这边cp 的文件是重新解压缩的,上面已经执行过cmake CMakeLists.txt 目录的目录已经被我删掉了。 或者把cp 这一步换成git clone https://github.com/open-source-parsers/jsoncpp.git 也可以
生成makefile : make :
拷贝头文件和库文件
将链接库拷贝到/usr/lib 将头文件拷贝到/usr/include
测试代码
网上随便copy一个代码1.cpp
#include <json/json.h>
#include <string>
#include <iostream>
using namespace std;
int main()
{
Json::Value array;
Json::Value root;
Json::Value person;
Json::FastWriter writer;
person["name"] = "allen";
person["age"] = 10;
person["sex"] = "male";
root.append(person);
person["name"] = "keiv";
person["age"] = 20;
person["sex"] = "female";
root.append(person);
person["name"] = "lihua";
person["age"] = 10;
person["sex"] = "female";
root.append(person);
array["array"] = Json::Value(root);
string data = writer.write(array);
cout<<data<<endl;
string strValue = array.toStyledString();
cout << strValue << endl;
Json::Reader reader;
Json::Value value;
if (reader.parse(strValue, value))
{
for (unsigned int i = 0; i < value["array"].size(); i++)
{
string name = value["array"][i]["name"].asString();
int age = value["array"][i]["age"].asInt();
string sex = value["array"][i]["sex"].asString();
cout << name << " " << age << " " << sex << endl;
}
}
return 0;
}
编译运行:g++ 1.cpp -ljsoncpp 大功告成!
|