目前我正在开发一个c ++项目,使用CPPRESTSDK(a.k.a. Casablanca)编写API的服务器端。
序列化诸如int,double等的值已在cpprestsdk库中实现。
我现在想问一下,如果有任何方法可以在客户端将std::vector
序列化为json::value
,请在服务器上进行反应,然后对其进行反序列化?
类似的东西:
http_client client(U("http://localhost"));
json::value jsonVector(std::vector);
make_task_request(client, methods::POST, jsonVector)
提前感谢您的一切!
答案 0 :(得分:0)
矢量序列化:
std::vector<int> someVector;
web::json::value json;
std::vector<value> array;
if (someVectory.size()) {
for (auto num : someVector) {
array.push_back(value(num));
}
json["yourKey"] = value::array(array);
}
如果您不需要将数组推送到容器对象中,那么只需使用value::array(array)
将std::vector
转换为数组。
要反序列化,我们假设您在array
中有一个已知数组:
std::vector<int> intVector;
for (auto it=array.cbegin();it!=array.cend();++it) {
intVector.push_back(it->as_integer());
}