В данный момент я работаю над проектом на c ++, пишу на стороне сервера API, используя CPPRESTSDK (a.k.a. Casablanca).
Сериализация значений, таких как 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)
Спасибо за все заранее!
Векторная сериализация:
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());
}
Других решений пока нет …