我得了std::optional<float> test;

我想将这个值存储到json文件中,因为它是可选的,所以直到运行时我才知道变量是否有值.所以我试着做这件事

frameJson["Test"] = test.has_value() ? test.value() : std::nullopt;

但我明白这个错误-

Error:Incompatible operand types ('const std::optional<float>::value_type' (aka 'const float') and 'const std::nullopt_t')

问题-如何存储std::在所有情况下对json可选的值,这意味着如果它是空的,那么它必须是null或有意义的值.

推荐答案

怎么样

frameJson["Test"] = test.has_value() ? basic_json(test.value()) : basic_json();

Json相关问答推荐

在Go中,当字段可以根据其他字段具有不同的类型时,什么是正确的方法来卸载JSON?

您可以使用Jolt对JSON执行OR条件吗

通过在织女星简化图上裁剪来显示文本

使用自定义类型在Golang中解析JSON数组

GitHub Pages无法正确显示我的项目

Jolt 规范将父对象中的所有键应用于数组中的所有对象

jq :当路径可变时更新 json 内容

如何将该 JSON 解析为 Kotlin 类?

添加到数组时出错:找不到Add的重载和参数计数:1

使用 jq 和 awk 拆分大型 JSON 文件

如何在 Android Studio 中将 List 字段作为空列表[]返回?

使用 ConvertFrom-Json 后,Powershell 访问 JSON 中的嵌套对象

Jolt - 在同一级别添加时组合值的问题

Json.Net:用于自定义命名的 JsonSerializer-Attribute

Rails 中奇怪的 JSON Javascript 问题

读取 HttpwebResponse json 响应,C#

在 Postgres 中向 JSON 对象添加元素

如何将 MongoDB 查询转换为 JSON?

Jersey 2.0 相当于 POJOMappingFeature

使用 jQuery 和 JSON 填充表单?