我正尝试在RapidJson中使用std :: string
using namespace std;
using namespace rapidjson;
const char* json = "{\n"
" \"id\": null\n"
" \"code\": null\n"
"}";
Document d;
string a = "myString";
d["myValue"].SetString(a); //error: no matching member function for call to 'SetString' in the compiler
我只想能够使用std :: string用Rapidjson编辑我的json,但是它不起作用。 c ++ btw的新手,很抱歉,如果这是一个愚蠢的问题。
编辑:我尝试了Jorge Perez的解决方案,但仍然收到此错误:/include/rapidjson/document.h:1139:Rapidjson :: GenericValue&Rapidjson :: GenericValue :: operator [](const Rapidjson :: GenericValue&)[使用SourceAllocator = Rapidjson :: MemoryPoolAllocator <>;编码= Rapidjson :: UTF8 <>; Allocator = Rapidjson :: MemoryPoolAllocator <>]:断言“ false”失败。
有什么想法吗?
答案 0 :(得分:-1)
如果您有字符串:
std::string s = "myString";
您可以通过使用数据和大小在RapidJson中进行设置:
document["myValue"].SetString(s.data(), s.size(), document.GetAllocator());