使用CPPREST-SDK将{std :: vector转换为JSON

时间:2017-04-18 18:30:29

标签: c++ json cpprest-sdk

目前我正在开发一个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)

提前感谢您的一切!

1 个答案:

答案 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());
    }