Я пытаюсь получить информацию о моих объектах из файла JSon. Он содержит n объектов (например, 2) по 4 поля. Я разбираю .json по fastjson, и моя IDE - Qt Creator.
Я уже пытался использовать указатели, описанные в http://rapidjson.org/md_doc_pointer.html#JsonPointer и Query Objects из их основного учебника, но почему-то я не могу заставить его работать.
Вот как будет выглядеть пример файла .json.
{
"opiekun1" : {
"imie": "Maksym",
"nazwisko": "Zawrotny",
"email": "maksym@wp.pl",
"haslo": "herbatka"},
"opiekun2" : {
"imie": "Filip",
"nazwisko": "Szatkowski",
"email": "filip@wp.pl",
"haslo": "kawusia"}
}
Я получаю документ DOM по:
FILE* fp = fopen(json_filename.c_str(), "rb");
char readBuffer[65536];
FileReadStream is(fp, readBuffer, sizeof(readBuffer));
Document d;
d.ParseStream(is);
Я попробовал Pointer () так:
Value* value = Pointer("/opiekun1/imie").Get(parsedJSon);
но я получил:
invalid conversion from 'const rapidjson::GenericValue<rapidjson::UTF8<> >*' to 'rapidjson::Value* {aka rapidjson::GenericValue<rapidjson::UTF8<> >*}'
Еще одна попытка была перебрать объекты в документе:
for (auto& object : parsedJSon.GetObject())
{
CUzytkownik* user;
user = new CUzytkownik;
int counter = 0;
for (Value::ConstMemberIterator itr = object.MemberBegin();
itr != object.MemberEnd(); itr++)
{
if (itr->name.GetString() == "imie")
user->imie = itr->value.GetString();
}
}
Но там написано:
const struct rapidjson::GenericMember<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<> >' has no member named 'MemberEnd'
Мне кажется, что я что-то неправильно понимаю при обработке объектов в файлах .json. Может ли кто-нибудь объяснить мне это и предоставить пример кода? Я бы хотел, чтобы мой вывод выглядел примерно так:
CUzytkownik* opiekun1 = new CUzytkownik;
opiekun1->name = "Maksym";
opiekun1->nazwisko = "Zawrotny";
opiekun1->email = "maksym@wp.pl";
opiekun1->haslo = "herbatka";
Если кто-то имеет опыт работы с rapidjson и хотел бы помочь, я буду очень признателен. Любые альтернативные примеры, такие как обработка массива или что-то подобное, также приветствуются.
Заранее спасибо!