# toJSON
> Return a [JSON][json] representation of a typed array.
## Usage
```javascript
var toJSON = require( '@stdlib/array/to-json' );
```
#### toJSON( typedarray )
Returns a [JSON][json] representation of a typed array.
```javascript
var Float64Array = require( '@stdlib/array/float64' );
var arr = new Float64Array( [ 5.0, 3.0 ] );
var json = toJSON( arr );
/* returns
{
'type': 'Float64Array',
'data': [ 5.0, 3.0 ]
}
*/
```
For guidance on reviving a JSON-serialized typed array, see [`reviver()`][@stdlib/array/reviver].
## Notes
- Supported typed array types:
- [`Float64Array`][@stdlib/array/float64]
- [`Float32Array`][@stdlib/array/float32]
- [`Int32Array`][@stdlib/array/int32]
- [`Uint32Array`][@stdlib/array/uint32]
- [`Int16Array`][@stdlib/array/int16]
- [`Uint16Array`][@stdlib/array/uint16]
- [`Int8Array`][@stdlib/array/int8]
- [`Uint8Array`][@stdlib/array/uint8]
- [`Uint8ClampedArray`][@stdlib/array/uint8c]
- The implementation provides basic support for custom typed arrays and sets the `type` field to the closest known typed array type.
```javascript
class CustomArray extends Float64Array() {
constructor( data ) {
super( data );
}
}
var arr = new CustomArray( [ 5.0, 3.0 ] );
var json = toJSON( arr );
/* returns
{
'type': 'Float64Array',
'data': [ 5.0, 3.0 ]
}
*/
```
## Examples
```javascript
var Float64Array = require( '@stdlib/array/float64' );
var Float32Array = require( '@stdlib/array/float32' );
var Int32Array = require( '@stdlib/array/int32' );
var Uint32Array = require( '@stdlib/array/uint32' );
var Int16Array = require( '@stdlib/array/int16' );
var Uint16Array = require( '@stdlib/array/uint16' );
var Int8Array = require( '@stdlib/array/int8' );
var Uint8Array = require( '@stdlib/array/uint8' );
var Uint8ClampedArray = require( '@stdlib/array/uint8c' );
var toJSON = require( '@stdlib/array/to-json' );
var arr = new Float64Array( [ 5.0, 3.0 ] );
var json = toJSON( arr );
/* returns
{
'type': 'Float64Array',
'data': [ 5.0, 3.0 ]
}
*/
arr = new Float32Array( [ 5.0, -3.0 ] );
json = toJSON( arr );
/* returns
{
'type': 'Float32Array',
'data': [ 5.0, -3.0 ]
}
*/
arr = new Int32Array( [ -5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Int32Array',
'data': [ -5, 3 ]
}
*/
arr = new Uint32Array( [ 5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Uint32Array',
'data': [ 5, 3 ]
}
*/
arr = new Int16Array( [ -5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Int16Array',
'data': [ -5, 3 ]
}
*/
arr = new Uint16Array( [ 5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Uint16Array',
'data': [ 5, 3 ]
}
*/
arr = new Int8Array( [ -5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Int8Array',
'data': [ -5, 3 ]
}
*/
arr = new Uint8Array( [ 5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Uint8Array',
'data': [ 5, 3 ]
}
*/
arr = new Uint8ClampedArray( [ 5, 3 ] );
json = toJSON( arr );
/* returns
{
'type': 'Uint8ClampedArray',
'data': [ 5, 3 ]
}
*/
```
[json]: http://www.json.org/
[@stdlib/array/float64]: https://www.npmjs.com/package/@stdlib/array/tree/main/float64
[@stdlib/array/float32]: https://www.npmjs.com/package/@stdlib/array/tree/main/float32
[@stdlib/array/int32]: https://www.npmjs.com/package/@stdlib/array/tree/main/int32
[@stdlib/array/uint32]: https://www.npmjs.com/package/@stdlib/array/tree/main/uint32
[@stdlib/array/int16]: https://www.npmjs.com/package/@stdlib/array/tree/main/int16
[@stdlib/array/uint16]: https://www.npmjs.com/package/@stdlib/array/tree/main/uint16
[@stdlib/array/int8]: https://www.npmjs.com/package/@stdlib/array/tree/main/int8
[@stdlib/array/uint8]: https://www.npmjs.com/package/@stdlib/array/tree/main/uint8
[@stdlib/array/uint8c]: https://www.npmjs.com/package/@stdlib/array/tree/main/uint8c
[@stdlib/array/reviver]: https://www.npmjs.com/package/@stdlib/array/tree/main/reviver