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::value
和 utility::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);
});
我正在使用 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::value
和 utility::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);
});