cpprestsdk (casablanca) json 值 std::vector<unsigned char>

cpprestsdk (casablanca) json value to std::vector<unsigned char>

我正在使用 cpprestsdk 来创建 http 客户端。我需要像这样转换 web::json::value

web::json::value obj;
obj[U("1")] = web::json::value(U("123"));
obj[U("2")] = web::json::value(U("321"));

std::vector<unsigned char>

为了满足要求

web::http::http_request req(method);
req.set_body(data); <<-- data == std::vector<unsigned char>

并发送到服务器。我知道如何发送 web::json::valueutility::string_t 但是字节向量有问题。 所以我的问题是如何将web::json::value转换为std::vector<unsigned char>。谢谢。

首先,您确定要转换吗?文档说 json::value.

有一个 set_body 过载

如果是,那么您可以转换为 utf-8 字符串(set_body 中的代码就是这样做的),然后复制到矢量。

auto text = utility::conversions::to_utf8string(obj.serialize());

std::vector<unsigned char> data(text.size());
std::transform(text.begin(), text.end(), data.begin(),
    [](char ch)
{
    return static_cast<unsigned char>(ch);
});