title: I need help using RapidJSON
body: <p>I'm trying to parse a JSON file using RapidJSON that has thousands of objects like this one</p>
  
  <pre><code>"Amateur Auteur": {
  "layout": "normal",
  "name": "Amateur Auteur",
  "manaCost": "{1}{W}",
  "cmc": 2,
  "colors": [
    "White"
  ],
  "type": "Creature — Human",
  "types": [
    "Creature"
  ],
  "subtypes": [
    "Human"
  ],
  "text": "Sacrifice Amateur Auteur: Destroy target enchantment.",
  "power": "2",
  "toughness": "2",
  "imageName": "amateur auteur",
  "colorIdentity": [
    "W"
   ]
  },
  </code></pre>
  
  <p>I believe I have stored the JSON as a C string correctly I just can't really understand how to use the RapidJSON library to return the values I want from each object.</p>
  
  <p>This is the code for storing the JSON as a C string and then parsing it in case I am doing something incorrect here.</p>
  
  <pre><code>std::ifstream input_file_stream;
  input_file_stream.open("AllCards.json", std::ios::binary | std::ios::ate); //Open file in binary mode and seek to end of stream 
  
  if (input_file_stream.is_open())
  {
      std::streampos file_size = input_file_stream.tellg(); //Get position of stream (We do this to get file size since we are at end)
      input_file_stream.seekg(0); //Seek back to beginning of stream to start reading
      char * bytes = new char[file_size]; //Allocate array to store data in
      if (bytes == nullptr)
      {
          std::cout &lt;&lt; "Failed to allocate the char byte block of size: " &lt;&lt; file_size &lt;&lt; std::endl;
      }
      input_file_stream.read(bytes, file_size); //read the bytes
      document.Parse(bytes);
      input_file_stream.close(); //close file since we are done reading bytes
      delete[] bytes; //Clean up where we allocated bytes to prevent memory leak
  }
  else
  {
      std::cout &lt;&lt; "Unable to open file for reading.";
  }
  </code></pre>