code: public List<MetaDataResult> getMetaDataResultList() {
      JSONArray jsonArray = null;
      try {
        jsonArray = _jsonObject.getJSONArray(DATASETS_ARRAY_FIELD);
        List<MetaDataResult> metaDataResults = new ArrayList<MetaDataResult>(jsonArray.length());
        for (int i = 0; i < jsonArray.length(); i++) {
          metaDataResults.add(MetaDataResult.of(jsonArray.getJSONObject(i)));
        }
        return metaDataResults;
      } catch (JSONException ex) {
        s_logger.error("Metadata had unexpected structure - could not extract datasets field, was:\n{}", _jsonObject.toString());
        throw new QuandlRuntimeException("Metadata had unexpected structure", ex);
      }
    }
docs: Extract a list of MetaDataResult objects, each one representing a match. Throws a QuandlRuntimeException if it cannot construct a valid
  HeaderDefinition
  
  @return the header definition, not null