code: def from_json(cls, data, api=None):
          
          result = cls(api=api)
          for elem_cls in [Node, Way, Relation, Area]:
              for element in data.get("elements", []):
                  e_type = element.get("type")
                  if hasattr(e_type, "lower") and e_type.lower() == elem_cls._type_value:
                      result.append(elem_cls.from_json(element, result=result))
  
          return result
docs: Create a new instance and load data from json object.
  
          :param data: JSON data returned by the Overpass API
          :type data: Dict
          :param api:
          :type api: overpy.Overpass
          :return: New instance of Result object
          :rtype: overpy.Result