2017-04-18 20 views
1

現在、私はCPPRESTSDK(a.k.a. Casablanca)を使用してAPIのサーバー側を記述しているC++プロジェクトに取り組んでいます。
int、doubleなどの値のシリアライズは、すでにcpprestsdkライブラリに実装されています。CPPREST-SDKを使用してstd :: vectorをJSONに変換する

クライアントでstd::vectorjson::valueにシリアル化する方法があれば、それをreqeustしてサーバーで逆シリアル化しますか?以下のような
何か:

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

は、事前にすべてのものをありがとう!

答えて

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

、そしてちょうど配列にstd::vectorを変換value::array(array)を使用しています。デシリアライズするには

、あなたはその後、arrayにおける既知の配列を持っているとしましょう:

std::vector<int> intVector; 
    for (auto it=array.cbegin();it!=array.cend();++it) { 
     intVector.push_back(it->as_integer()); 
    } 
+0

ます。また_stdにdeserialzeでき::イテレータすなわちによってそのコンストラクタを使用して、ベクター<ウェブ:: JSON ::値> _ :_std :: vector vec(array.cbegin()、array.cend()); _。 – Quirysse

関連する問題