RapidJson kArrayType with String



我有以下代码,但它不能编译。我想不出原因,请帮帮我。

rapidjson::Document jsonDoc;
jsonDoc.SetObject();
rapidjson::Document::AllocatorType& allocator = jsonDoc.GetAllocator();
rapidjson::Value messageArr(rapidjson::kArrayType);
std::string test = std::string("TEST");
messageArr.PushBack(test.c_str(), allocator);

给我以下错误;

错误:没有匹配的函数调用' rapidjson::GenericValue>::PushBack(const char*,rapidjson: GenericDocument>:: AllocatorType&)的
messageArr.PushBack (test.c_str()、分配器);

[已编辑]-解决方案:

  std::string test = std::string("TEST");
  rapidjson::Value strVal;
  strVal.SetString(test.c_str(), test.length(), allocator);
  messageArr.PushBack(strVal, allocator);

参见RapidJson教程-创建字符串

Fluent-style:

 messageArr.PushBack(
      rapidjson::Value{}.SetString(test.c_str(), test.length(), allocator),
      allocator
  );
using namespace rapidjson;
using namespace std;
Value array(kArrayType);
string test = "TEST";
Value cat(test.c_str(), allocator);
array.PushBack(cat, allocator);

相关内容

  • 没有找到相关文章

最新更新