Почему fastjson вызывает у меня проблемы с std :: string? - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь использовать std :: string с RapidJson

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

Я просто хочу иметь возможность редактировать мой json с rapidjson, используя std :: string, но он не работает. Впервые в c ++, кстати, извините, если это глупый вопрос.

Редактировать: я пробовал решение от Хорхе Переса, но все еще получаю эту ошибку: /include/rapidjson/document.h:1139: rapidjson :: GenericValue & rapidjson :: GenericValue :: operator [] (const rapidjson :: GenericValue &) [with SourceAllocator = rapidjson :: MemoryPoolAllocator <>; Encoding = rapidjson :: UTF8 <>; Allocator = rapidjson :: MemoryPoolAllocator <>]: утверждение «ложь» не выполнено.

Есть идеи?

1 Ответ

0 голосов
/ 09 апреля 2019

Если у вас есть строка:

std::string s = "myString"; 

Вы можете установить его в RapidJson, используя данные и размер:

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