2017-06-29 62 views
0

我使用cpprestsdk以創建HTTP客戶端。我需要轉換web::json::value這樣的:cpprestsdk(卡薩布蘭卡)JSON值到std ::矢量<無符號字符>

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>。謝謝。

回答

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); 
}); 
+0

聽起來溶液。 – definename

相關問題