code: def parse_JSON(self, JSON_string):
          
          if JSON_string is None:
              raise parse_response_error.ParseResponseError('JSON data is None')
          d = json.loads(JSON_string)
          try:
              id = d.get('ID', None) or d.get('id', None)
              external_id = d.get('external_id', None)
              lon = d.get('longitude', None)
              lat = d.get('latitude', None)
              alt = d.get('altitude', None)
          except KeyError as e:
              raise parse_response_error.ParseResponseError('Impossible to parse JSON: %s' % e)
          name = d.get('name', None)
          rank = d.get('rank', None)
          created_at = d.get('created_at', None)
          updated_at = d.get('updated_at', None)
          return Station(id, created_at, updated_at, external_id, name, lon, lat,
                         alt, rank)
docs: Parses a *pyowm.stationsapi30.station.Station* instance out of raw JSON
          data.
  
          :param JSON_string: a raw JSON string
          :type JSON_string: str
          :return: a *pyowm.stationsapi30.station.Station** instance or ``None``
              if no data is available
          :raises: *ParseResponseError* if it is impossible to find or parse the
              data needed to build the result