关于nlohmann结构体(类)和JSON相互转换的四个宏

前言

上文介绍了结构体(类)与JSON相互转换的基本操作步骤——http://t.csdnimg.cn/VQNa0

同事也提到了四个宏分为两类——侵入式,非侵入式。

一:侵入式与非侵入式

侵入式

struct People
{
    std::string name;
    int age;
    NLOHMANN_DEFINE_TYPE_INTRUSIVE(People, name, age)
    // NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(People, name, age)
};
  1. NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT

  2. NLOHMANN_DEFINE_TYPE_INTRUSIVE

侵入式在结构体(类)内部使用,因为侵入式宏会在编译时给结构体(类)生成两个to_json()和from_json();下面是json.hpp中关于两个侵入式宏的定义

#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...)  \
    friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
    friend 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直在找资料的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值