我正在使用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>
。感谢。
答案 0 :(得分:0)
首先,您确定需要转换吗?文档说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);
});