- 关于jsoncpp如何编译的介绍,请移步c++库——jsoncpp编译安装。
本文介绍jsoncpp库如何读取或写入json信息。
jsoncpp写json文件 Json::FastWriter jsonWrite;
Json::Value value;
value["test"] = 1;
value["test2"] = "2"; //写入普通数据
/ * 写入数组数据*/
Json::Value valueArray;
Json::String atest= "atset";
double dtest= 123.2;
valueArray.append(atest);
valueArray.append(dtest);
value["array"] = valueArray;
Json::String str = jsonWrite.write(value);
std::cout.flush();
//value.toStyledString()可以格式化JSON文件
//可以将Json::Value转换为字符串。其中FastWriter结果是无格式的字符串,而StyleWriter是格式化的字符串。
jsoncpp读取json文件
{
"test":45,
"array":[1,2,3],
"string":"test"
}
打开当前目录下的JSON文件,如下代码:
Json::Reader jsonReader;
Json::Value jsonValue;
std::ifstream jsonFile("./test.json");
// jsonFile.open("./test.json",std::ios_base::out);
if(!jsonReader.parse(jsonFile,jsonValue,true))
{
std::cout << "read error" << std::endl;
return ;
}
//jsonFile.close();
Json::Value test = jsonValue["test"];
std:: cout <<test << std::endl;
double number = test.asDouble(); //将value转换为double
//数组的读取
Json::Value arrayValue = jsonValue["array"];
std:: cout <<arrayValue << std::endl;
int size = arrayValue.size();
for(int i(0);i<size;i++)
{
std::cout << arrayValue[i] << std::endl;
}
/*
* Json::Value转string String asString() const;
* Json::Value转double double asDouble() const;
* Json::Value转bool bool asBool() const;
* Json::Value转int Int asInt() const;
* .....
* /
更多详细资料可以查看jsoncpp的官方文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)