Разбор с Rapid json и создание производных объектов - PullRequest
0 голосов
/ 05 апреля 2020

В проекте, над которым я работаю, у меня есть два класса со следующими конструкторами:

CreatureCard(std::string name, int mana_cost, int damage_points, int life_points, bool shield, bool mana_drain);

SpellCard(std::string name, int manaCost, CardType type_, SpellType type);

И я пытаюсь извлечь объекты из этих двух классов, используя Rapid json и этот файл конфигурации:

{
  "Creatures" : [
    {
      "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"
    }
  ]
}

Я прочитал документацию Rapid json, и у меня есть следующий код:

#include <iostream>
#include <fstream>
#include <string>
#include "rapidjson/document.h"
#include "rapidjson/istreamwrapper.h"
#include "Card.hpp"
#include <map>
#include <vector>
#include <sstream>

  loadConfig(std::string config_file)
  {
    std::ifstream file(config_file);
    if(file.is_open())
    {
      std::cout << config_file + " <- Is Open \n" << std::endl;
    };
    rapidjson::IStreamWrapper isw(file);
    rapidjson::Document d;
    d.ParseStream(isw);
    return true;
  }

Может кто-нибудь дать мне совет, как мне поступить, чтобы решить эту проблему?

...