2017-06-17 30 views
0

現在、私はrapidjsonを使用しているC++のプロジェクトに取り組んでいます。rapidjsonのメンバの値を置換する

私のプログラムは、いくつかの認証の詳細を含むソケット上でJSONデータを受信します。受信メッセージはログに記録しますが、ログファイルには表示されないようにパスワードを非表示にします。だから私は、JSONオブジェクトを取得しようとしていると文字列の各文字を置き換え、この置き換えられた文字列をパスワードがあったJSONオブジェクトに戻します。以下は

は、私が持っているコードです:

rapidjson::Document jsonObject; 
      jsonObject.Parse(command.c_str()); 

      string method = jsonObject["method"].GetString(); 

      if (jsonObject.HasMember("sshDetails")) 
      { 
       Value& sshDetails = jsonObject["sshDetails"]; 
       string sshPassword = sshDetails["sshPassword"].GetString(); 

       for (int i = 0; i < sshPassword.length(); i++) 
       { 
        sshPassword[i] = '*'; 
       } 

       rapidjson::Value::Member* sshPasswordMember = sshDetails.FindMember("sshPassword"); 
       sshPasswordMember->name.SetString(sshPassword.c_str(), jsonObject.GetAllocator()); 

       //Convert it back to a string 
       rapidjson::StringBuffer buffer; 
       buffer.Clear(); 
       rapidjson::Writer<rapidjson::StringBuffer>writer(buffer); 
       Document jsonDoc; 
       jsonDoc.Accept(writer); 
       string jsonString = string(buffer.GetString()); 

私は次の行にエラーを取得しています:

rapidjson::Value::Member* sshPasswordMember = sshDetails.FindMember("sshPassword"); 

私は取得していますエラーは次のとおりです。

No suitable conversion function from rapidjson::GenericMemberIterator<false, rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CtrlAllocator>> to rapidjson::GenericMember::UTF8<char>, myProject...SocketProcessor.cpp 
rapidjson::MemoryPoolAllocator<rapidjson::CtrlAllocator>>*exists 

私は別の質問の例から上記の回答を受け取ったので、答えはrapidjson - change key to another valueです。私は行方不明です。

答えて

0

私はラウンドとラッキーを演奏することでこれに対する答えを見つけることができました。

私は

rapidjson::Value::MemberIterator sshPasswordMember = sshDetails.FindMember("sshPassword"); 
sshPasswordMember->value.SetString(sshPassword.c_str(), jsonObject.GetAllocator()); 
する

rapidjson::Value::Member* sshPasswordMember = sshDetails.FindMember("sshPassword"); 
sshPasswordMember->name.SetString(sshPassword.c_str(), jsonObject.GetAllocator()); 

を変更

関連する問題