2

目前我正在开发一个 c++ 项目,使用 CPPRESTSDK(又名 Casablanca)编写 API 的服务器端。
cpprestsdk 库中已经实现了序列化值,例如 int、double 等。

我现在想问,是否有任何方法可以在客户端将std::vectora序列化为 a json::value,提出请求,然后在服务器上对其进行反序列化?
就像是:

    http_client client(U("http://localhost"));
    json::value jsonVector(std::vector);
    make_task_request(client, methods::POST, jsonVector)

提前感谢您所做的一切!

4

1 回答 1

1

向量序列化:

    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());
    }
于 2017-05-28T18:12:37.907 回答