[page:Loader] →

# [name]

A loader for loading objects in JSON format.

## Constructor

### [name]( [page:LoadingManager manager] )

[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
Creates a new [name].

## Methods

### [method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )

[page:String url] — required.
[page:Function onLoad] — Will be called when load completes. The argument will be the loaded text response.
[page:Function onProgress] — Will be called while load progresses. The argument will be the XmlHttpRequest instance, that contain .[page:Integer total] and .[page:Integer loaded] bytes.
[page:Function onError] — Will be called when load errors.
Begin loading from url and pass the JSON to onLoad.

### [method:null setTexturePath]( [page:String texturePath] )

[page:String texturePath] — Base path for textures.
Set the base path for textures.

### [method:Object3D parse]( [page:Object json], [page:String texturePath] )

[page:String json] — JSON object to parse.
[page:String texturePath] — Base path for textures.
Parse a JSON structure and return an [page:object] containing the parsed [page:Geometry geometry] and [page:Array materials].

## Example

`// instantiate a loader var loader = new THREE.JSONLoader(); // load a resource loader.load( // resource URL 'models/animated/monster/monster.js', // Function when resource is loaded function ( geometry, materials ) { var material = new THREE.MultiMaterial( materials ); var object = new THREE.Mesh( geometry, material ); scene.add( object ); } );` [example:webgl_loader_json_blender]

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]