ev-json-optional-from-json-002¶
| 字段 | 值 |
|---|---|
| 项目 | nlohmann/json |
| 固定 commit | 55f93686c015 |
| 路径 | include/nlohmann/detail/conversions/from_json.hpp |
| 行段 | L49-L62 |
| 特性 | std::optional |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-24 |
| 测试代码 | 否 |
| 发现方式 | regex |
用法¶
JSON null 映射为 nullopt,其他值 emplace
为什么典型¶
反序列化时把 JSON 的空值与 C++ 的可选状态一一对应,调用方无需额外哨兵值。
摘录¶
#ifdef JSON_HAS_CPP_17
#ifndef JSON_USE_IMPLICIT_CONVERSIONS
template<typename BasicJsonType, typename T>
void from_json(const BasicJsonType& j, std::optional<T>& opt)
{
if (j.is_null())
{
opt = std::nullopt;
}
else
{
opt.emplace(j.template get<T>());
}
}
备注¶
生产路径;仅在未启用隐式转换时启用。