ev-json-optional-to-json-003¶
| 字段 | 值 |
|---|---|
| 项目 | nlohmann/json |
| 固定 commit | 55f93686c015 |
| 路径 | include/nlohmann/detail/conversions/to_json.hpp |
| 行段 | L267-L281 |
| 特性 | std::optional |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-24 |
| 测试代码 | 否 |
| 发现方式 | regex |
用法¶
有值写值,空状态写 null
为什么典型¶
序列化与反序列化保持双向映射,空状态不会退化成未定义字段或默认值。
摘录¶
#ifdef JSON_HAS_CPP_17
template<typename BasicJsonType, typename T,
enable_if_t<std::is_constructible<BasicJsonType, T>::value, int> = 0>
void to_json(BasicJsonType& j, const std::optional<T>& opt)
{
if (opt.has_value())
{
j = *opt;
}
else
{
j = nullptr;
}
}
#endif
备注¶
生产路径;与 from_json 的空值语义对称。