[英]Cannot use std::string variable in RapidJSON function call
我是 C++ 的新手,遇到了問題。 我正在使用 rapidJSON 創建 JSON 文檔。
void setKeyValue() {
Value obj(kObjectType);
Value key("key");
Value val(42);;
obj.AddMember(key, val, d.GetAllocator());
}
按預期工作。 但是當我嘗試替換對 key 的調用以使其使用傳入的參數時,如下所示:
void setKeyValue(string myKey) {
Value obj(kObjectType);
Value key(myKey);
Value val(42);;
obj.AddMember(key, val, d.GetAllocator());
}
Value key(myKey)
中的 myKey 在 Visual Studio 中得到一個紅色卷曲下划線,說明如下:
是什么原因造成的,我該如何解決?
您正在使用的 JSON 庫似乎不適用於標准庫中的字符串對象,但它適用於 const char*。
因此,您必須使用 c_str() 方法將字符串 object 轉換為 char*:
void setKeyValue(string myKey) {
Value obj(kObjectType);
Value key((char*)myKey.c_str());
Value val(42);;
obj.AddMember(key, val, d.GetAllocator());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.