Я сталкиваюсь с проблемой разбора файла JSON через Rapid JSON и загрузки его содержимого в атрибуты объектов, которые я создал в своей программе (карточная игра). Файл JSON содержит два типа карт - карты существ и карт заклинаний - каждому из которых назначены атрибуты.
bool loadConfig(std::string config_file){
std::ifstream ifs(config_file);
rapidjson::IStreamWrapper isw(ifs);
rapidjson::Document file;
file.ParseStream(isw);
assert(file.IsObject());
assert(file.HasMember("Creatures"));
assert(file["Creatures"].IsString());
printf("Name: %s\n", file["Creatures"].GetString());
return true;
}
Функция, с которой я работаю, получает свою строку из аргумента командной строки. Я попытался с помощью IStreamwrapper получить быстрый JSON для начала синтаксического анализа, но я получаю сообщение об ошибке "Assertion
file.IsObject () 'fail "`.
Это файл конфигурации, с которым я работаю .
{
"Creatures" : [
{
"name": "Big Wall",
"mana_cost": 7,
"damage_points": 2,
"life_points": 9,
"shield": true,
"mana_drain": false
},
{
"name": "Werwolf",
"mana_cost": 13,
"damage_points": 9,
"life_points": 6,
"shield": false,
"mana_drain": false
}
],
"Spells" : [
{
"name": "Healer"
},
{
"name": "Relief"
},
{
"name": "Rebirth"
},
{
"name": "Dracula"
}
]
}