nlohmann::json
JSON for Modern C++,,详细的说明可前往github学习使用。
Json文件类型
Json文件分为Json和Ordered_Json, 其中Ordered_Json的存储顺序与填写顺序一致, 而默认的Json则是按照字母顺序排序
Json数据类型
Object, Array, String, Number, Bool
写Json
code:
nlohmann::json j;
j["part1"]["section1_string"] = "this is string";
j["part1"]["section2_number"] = 3.1415926;
j["part2"]["section1_array_number"] = {1,2,3,4};
j["part2"]["section2_array_string"] = {"str1","str2","str3"};
std::ofstream ofs("./path.json");
if(!ofs.is_open()){
return false;
}
/// 控制缩进
ofs<<j.dump(4);
ofs.close();
输出结果(大概吧,毕竟不是通过代码生成的json...):
{
"part1":{
"section1_string":"this is string",
"section2_number":3.1415926
},
"part2":{
"section1_array_number":[
1,
2,
3,
4
],
"section2_array_string":[
"str1",
"str2",
"str3"
]
}
}
读Json
以上面的json文件为例,读取该文件
std::ifstream ifs("path.json");
if (!ifs.is_open()) {
return false;
}
nlohmann::json j = nlohmann::json::parse(ifs);
/// 如果对读取的json顺序有要求:
nlohmann::ordered_json oj = nlohmann::json::parse(ifs);
ifs.close();