为什么RapidJSON给我std :: string问题?

时间:2019-04-09 05:56:50

标签: c++ json rapidjson

我正尝试在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”失败。

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

如果您有字符串:

std::string s = "myString"; 

您可以通过使用数据和大小在RapidJson中进行设置:

document["myValue"].SetString(s.data(), s.size(), document.GetAllocator());