class_docstr: Base class for an Adapter.
  
  There are two types of adapters:
  
  - :class:`.BaseSyncAdapter` -- synchronous adapter,
  - :class:`.BaseAsyncAdapter` -- asynchronous (asyncio) adapter.
  
  Concrete adapter implementations must extend one of the two
  base adapters above.
  
  See :attr:`geopy.geocoders.options.default_adapter_factory`
  for details on how to specify an adapter to be used by geocoders.
docstr: Same as ``get_text`` except that the response is expected
  to be a valid JSON. The value returned is the parsed JSON.
  
  :class:`geopy.exc.GeocoderParseError` must be raised if
  the response cannot be parsed.
  
  :param str url: The target URL.
  
  :param float timeout:
      See :attr:`geopy.geocoders.options.default_timeout`.
  
  :param dict headers: A dict with custom HTTP request headers.
docstr_tok: ["Same","as","``","get_text","``","except","that","the","response","is","expected","to","be","a","valid","JSON",".","The","value","returned","is","the","parsed","JSON",".",":","class",":","`","geopy.exc.GeocoderParseError","`","must","be","raised","if","the","response","can","not","be","parsed",".",":","param","str","url",":","The","target","URL",".",":","param","float","timeout",":","See",":","attr",":","`","geopy.geocoders.options.default_timeout","`",".",":","param","dict","headers",":","A","dict","with","custom","HTTP","request","headers","."]
code: def get_json(self, url, *, timeout, headers):
      """Same as ``get_text`` except that the response is expected
      to be a valid JSON. The value returned is the parsed JSON.
  
      :class:`geopy.exc.GeocoderParseError` must be raised if
      the response cannot be parsed.
  
      :param str url: The target URL.
  
      :param float timeout:
          See :attr:`geopy.geocoders.options.default_timeout`.
  
      :param dict headers: A dict with custom HTTP request headers.
      """
  
imports: import abc
  import asyncio
  import contextlib
  import email
  import json
  import ssl
  import time
  import warnings
  from socket import timeout
  from ssl import SSLError
  from urllib.error import HTTPError
  from urllib.parse import urlparse
  from urllib.request import HTTPSHandler, ProxyHandler, Request, URLError, build_opener, getproxies
  from geopy.exc import GeocoderParseError, GeocoderServiceError, GeocoderTimedOut, GeocoderUnavailable, GeopyError
  from geopy.util import logger
label_desc: Use image node_id 2 for calling the BaseAdapter obj's underlying member method code with example usage: obj.get_json(url) without return types