Я пытаюсь проанализировать базовый std :: vector строк в json, используя библиотеку rapidjson.
Несмотря на то, что есть несколько ответов на этот вопрос онлайн, ни один из них не помог мне. Лучшее, что я мог найти, было это , но я получаю сообщение об ошибке (немного исправлено):
Ошибка C2664 «noexcept»: невозможно преобразовать аргумент 1 из «std :: basic_string, std :: allocator>» в «rapidjson :: GenericObject, rapidjson :: MemoryPoolAllocator >>»
Мой код в основном основан на ссылке выше:
rapidjson::Document d;
std::vector<std::string> files;
// The Vector gets filled with filenames,
// I debugged this and it works without errors.
for (const auto & entry : fs::directory_iterator(UPLOAD_DIR))
files.push_back(entry.path().string());
// This part is based on the link provided
d.SetArray();
rapidjson::Document::AllocatorType& allocator = d.GetAllocator();
for (int i = 0; i < files.size(); i++) {
d.PushBack(files.at(i), allocator);
}
rapidjson::StringBuffer strbuf;
rapidjson::Writer<rapidjson::StringBuffer> writer(strbuf);
d.Accept(writer);
jsonString = strbuf.GetString();
Было бы неплохо, если бы кто-то мог объяснить, чего мне здесь не хватает, так как я не до конца понимаю ошибку, которая появляется. Я предполагаю, что это должно что-то делать с предоставленными типами строк, но ошибка генерируется в файле Rapidjson ..
Я также был бы признателен, если бы вы могли привести и другие рабочие примеры.
Заранее спасибо!
EDIT
Под JSON Array я подразумеваю просто базовую строку json, содержащую значения вектора.