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です。私は行方不明です。