code: private GeometryCollection asGeomCollection(CrsId crsId) throws IOException {
          try {
              String subJson = getSubJson("geometries", "A geometrycollection requires a geometries parameter")
                      .replaceAll(" ", "");
              String noSpaces = subJson.replace(" ", "");
              if (noSpaces.contains("\"crs\":{"))
              {
                  throw new IOException("Specification of the crs information is forbidden in child elements. Either " +
                                        "leave it out, or specify it at the toplevel object.");
              }
  
              // add crs to each of the json geometries, otherwise they are deserialized with an undefined crs and the
              // collection will then also have an undefined crs.
              subJson = setCrsIds(subJson, crsId);
  
              List<Geometry> geometries = parent.collectionFromJson(subJson, Geometry.class);
  
              return new GeometryCollection(geometries.toArray(new Geometry[geometries.size()]));
  
          } catch (JsonException e) {
              throw new IOException(e);
          }
      }
docs: Parses the JSON as a GeometryCollection.
  
  @param crsId the crsId of this collection.
  @throws IOException if the given json does not correspond to a geometrycollection or can be parsed as such
  @return an instance of a geometrycollection