跳转至

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 的空值语义对称。

查看固定 commit 源码 · 返回证据索引