function GltfJsonLoader(options) {
  options = options ?? Frozen.EMPTY_OBJECT;
  const resourceCache = options.resourceCache;
  const gltfResource = options.gltfResource;
  const baseResource = options.baseResource;
  const typedArray = options.typedArray;
  const gltfJson = options.gltfJson;
  const cacheKey = options.cacheKey;

  //>>includeStart('debug', pragmas.debug);
  Check.typeOf.func("options.resourceCache", resourceCache);
  Check.typeOf.object("options.gltfResource", gltfResource);
  Check.typeOf.object("options.baseResource", baseResource);
  //>>includeEnd('debug');

  this._resourceCache = resourceCache;
  this._gltfResource = gltfResource;
  this._baseResource = baseResource;
  this._typedArray = typedArray;
  this._gltfJson = gltfJson;
  this._cacheKey = cacheKey;
  this._gltf = undefined;
  this._bufferLoaders = [];
  this._state = ResourceLoaderState.UNLOADED;
  this._promise = undefined;
}
Loads a glTF JSON from a glTF or glb.
<p>
Implements the {@link ResourceLoader} interface.
</p>

@alias GltfJsonLoader
@constructor
@augments ResourceLoader

@param {object} options Object with the following properties:
@param {ResourceCache} options.resourceCache The {@link ResourceCache} (to avoid circular dependencies).
@param {Resource} options.gltfResource The {@link Resource} containing the glTF.
@param {Resource} options.baseResource The {@link Resource} that paths in the glTF JSON are relative to.
@param {Uint8Array} [options.typedArray] The typed array containing the glTF contents.
@param {object} [options.gltfJson] The parsed glTF JSON contents.
@param {string} [options.cacheKey] The cache key of the resource.

@private