C++ Json Boost 值转换为字符串

mon*_*jet 4 c++ json boost

我有使用 Boost 库的简单 C++ 代码:

auto jsonStringPtr = jsonValuePtr->if_string();
Run Code Online (Sandbox Code Playgroud)

如何将此值转换为不带引号的 std::string ?

我测试了这段代码:

std::string myString = boost::json::serialize(*jsonStringPtr);
Run Code Online (Sandbox Code Playgroud)

但它包含引号,例如“abc”插入 abc...有什么想法吗?

#编辑

  • 增强:v1.76.0
  • C++:20

例子:

boost::json::error_code errorCode;
boost::json::value jsonValue = boost::json::parse("{\"fff\": \"abc\"}", errorCode);

auto jsonString = jsonValue.as_object()["fff"].as_string();
std::string myString = boost::json::serialize(jsonString);
Run Code Online (Sandbox Code Playgroud)

mon*_*jet 8

我找到了解决方案:

boost::json::value_to<std::string>(jsonValue)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,让“ADL”找到它可能没问题,因此您不必编写“boost::json::value_to”而只需编写“value_to” (5认同)