//rapijson
#include <rapidjson/document.h>
#include <rapidjson/istreamwrapper.h>
#include "rapidjson/error/en.h"
#include <fstream>
#define has_uint(val, key) (val.HasMember(key) && val[key].IsUint())
#define has_object(val, key) (val.HasMember(key) && val[key].IsObject())
#define has_string(val, key) (val.HasMember(key) && val[key].IsString())
bool Config::parse(const std::string& file_name) {
using namespace rapidjson;
std::ifstream ifs(file_name);
IStreamWrapper isw(ifs);
Document doc;
ParseResult ok = doc.ParseStream(isw);
if (!ok) {
std::cout << "Config parse error:" << GetParseError_En(ok.Code()) << " " << ok.Offset();
return false;
}
// udp
if (!has_object(doc, "udp")) {
std::cout << "Config parse error:udp";
return false;
}
auto udp = doc["udp"].GetObject();
if (!has_string(udp, "
c++ rapidjson库的使用
最新推荐文章于 2024-07-10 15:04:04 发布
本文详细介绍了C++中如何使用rapidjson库进行JSON数据的解析和生成,包括基本用法、内存管理和性能优化等方面,帮助开发者快速上手。
摘要由CSDN通过智能技术生成