Я искал эту конкретную ошибку, но я не нашел никакого связанного с ней вопроса.Rapidjson не читает файл
Я пытаюсь использовать Rapidjson для разбора .json файлы в моем проекте C++, и это, как я это делаю (после каких RapidJSON tutorial состояний):
main.cpp
#include "../include/rapidjson/document.h"
...
using namespace rapidjson;
int main() {
...
Document doc;
doc.Parse("data/entities.json");
if (doc.HasMember("DreadNought") { ... }
...
}
Ожидаемый результат в том случае, если утверждение заключается в том, чтобы распечатать что-то на консоли Win32, но оно выдает команду Rapidjson
внутри document.h
.
Дело в том, что оно распознает файлы rapidjson
, так как оно находит функции и не вызывает никаких ошибок. Однако, когда я отладки, это то, что doc
объект содержит после выполнения Parse()
{data_={s={length=0 hashcode=0 str=0x00000000 <NULL> } ss={str=0x0124fa30 "" } n={i={i=0 padding=0x0124fa34 "" } ...} ...} }
0x0321ec30 {chunkHead_=0x00000000 <NULL> chunk_capacity_=65536 userBuffer_=0x00000000 ...}
Все поля внутри doc
объекта имеют NULL
значения. Обратите внимание, что я пробовал Parse<0>()
, если я не знаю, что это означает, atm, и результат точно такой же.
Это не проблема пути, так как я использую тот же путь (data/
) для получения изображений и других данных, и они найдены.
Единственная информация, которую я получаю от компилятора, - это некоторые предупреждения, которые я не смог расшифровать.
1>...\include\rapidjson\encodedstream.h(88): warning C4512: 'rapidjson::EncodedInputStream<rapidjson::UTF8<char>,rapidjson::MemoryStream>' : assignment operator could not be generated
...\include\rapidjson\encodedstream.h(68) : see declaration of 'rapidjson::EncodedInputStream<rapidjson::UTF8<char>,rapidjson::MemoryStream>'
1>...\include\rapidjson\document.h(324): warning C4512: 'rapidjson::GenericStringRef<char>' : assignment operator could not be generated
...\include\rapidjson\document.h(1119) : see reference to class template instantiation 'rapidjson::GenericStringRef<char>' being compiled
1> ...\include\rapidjson\document.h(1118) : while compiling class template member function 'rapidjson::GenericMemberIterator<false,Encoding,Allocator> rapidjson::GenericValue<Encoding,Allocator>::FindMember(const char *)'
1> with
1> [
1> Encoding=rapidjson::UTF8<char>
1> , Allocator=rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>
1> ]
1> ...\include\rapidjson\document.h(1123) : see reference to function template instantiation 'rapidjson::GenericMemberIterator<false,Encoding,Allocator> rapidjson::GenericValue<Encoding,Allocator>::FindMember(const char *)' being compiled
1> with
1> [
1> Encoding=rapidjson::UTF8<char>
1> , Allocator=rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>
1> ]
1> ...\include\rapidjson\document.h(2010) : see reference to class template instantiation 'rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>' being compiled
1> ...\src\main.cpp(17) : see reference to class template instantiation 'rapidjson::GenericDocument<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>,rapidjson::CrtAllocator>' being compiled
То, что я думаю, что это происходит чтение этих предупреждений в том, что она не принимает const char *
, но это, как это делается в учебнике я связан, и они не показывают какой-либо другой путь.
Заранее спасибо.
UPDATE:
Кажется, что это может быть проблема с файлом, но я не уверен, что и не знаю, как избежать этого. Я создал файл с кодом Visual Studio и сохранил его как .json, и я создал его как .txt из проводника Windows, тот же результат. Я также скачал его из JSON Editor Online, и он не работает, так что я почти уверен, что есть еще одна проблема, которую я не могу получить ...
Изобразительное. Спасибо, я этого не заметил. – jjimenezg93