做网站用啥软件,小程序快速搭建,做国外网站有哪些,电视云网站建设1. json库
我个人比较喜欢 nlohmann/json.hpp 这个库#xff0c;因为它只需要一个hpp文件即可#xff0c;足够轻量#xff01;
这是它的github地址。
2. 简单实例代码
#include iostream
#include json.hpp
#include fstream
#include stri…1. json库
我个人比较喜欢 nlohmann/json.hpp 这个库因为它只需要一个hpp文件即可足够轻量
这是它的github地址。
2. 简单实例代码
#include iostream
#include json.hpp
#include fstream
#include stringusing namespace nlohmann;
using namespace std;string GenerateJsonStr()
{/** 生成json格式字符串** 预计的json格式文本为* {* name: ashui,* school: [A school, B school, C school],* money: [124.5, 345.3, 457.4],** physic* {* height: 180,* weight: 68.5* }* }*/json json_data;json_data[name] ashui;json_data[school] { A school, B school, C school };json_data[money] { 124.5, 345.3, 457.4 };json physic_data;physic_data[height] 180;physic_data[weight] 68.5;json_data[physic] physic_data;return json_data.dump();
}bool SaveJsonStr()
{string jsonStr GenerateJsonStr();// Save to filestd::ofstream file(output.json);if (file.is_open()){file jsonStr;file.close();std::cout dump string: std::endl;std::cout jsonStr std::endl;return true;}return false;
}bool ReadJsonObj()
{std:ifstream jsonFile(D:\\Project\\C\\json_example\\x64\\Debug\\output.json);if (!jsonFile.is_open()){std::cout Open json file error std::endl;return false;}json jsonData;try{jsonData json::parse(jsonFile);if (jsonData.is_null()){std::cout The json object is null std::endl;return false;}std::string name jsonData[name];std::vectorstd::string school jsonData[school];std::vectorfloat money jsonData[money];int height jsonData[physic][height];float weigjt jsonData[physic][weight];std::cout std::endl;std::cout parse string: std::endl;std::cout name: name std::endl;std::cout height: height std::endl;std::cout weigjt: weigjt std::endl;std::cout school: ;for (auto s : school){std::cout s , ;}std::cout std::endl;std::cout money: ;for (auto m : money){std::cout m , ;;}std::cout std::endl;}catch (const std::exception e){std::cout json error: e.what() std::endl;return false;}return true;
}int main()
{SaveJsonStr();ReadJsonObj();
}值得注意的是在使用[]读取json内容时最外层一定要套一个try-catch用以补获异常这样比起一个一个元素去判断是否为空、是否为数组等要方便且安全