c++ rapidjson库的使用

本文详细介绍了C++中如何使用rapidjson库进行JSON数据的解析和生成,包括基本用法、内存管理和性能优化等方面,帮助开发者快速上手。
摘要由CSDN通过智能技术生成
//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, "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值