ndarray2json
Serialize an ndarray as a JSON object.
Usage
var ndarray2json = require( '@stdlib/ndarray/to-json' );
ndarray2json( x )
Serializes an ndarray as a JSON object.
var ndarray = require( '@stdlib/ndarray/ctor' );
var buffer = [ 1, 2, 3, 4 ];
var shape = [ 2, 2 ];
var order = 'row-major';
var strides = [ 2, 1 ];
var offset = 0;
var x = ndarray( 'generic', buffer, shape, strides, offset, order );
// returns <ndarray>
var out = ndarray2json( x );
// returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 1.0, 2.0, 3.0, 4.0 ] }
Notes
- The function does not serialize data outside of the buffer defined by the ndarray view.
Examples
var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );
var strides2offset = require( '@stdlib/ndarray/base/strides2offset' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
var zeroTo = require( '@stdlib/array/base/zero-to' );
var ndarray = require( '@stdlib/ndarray/ctor' );
var ndarray2json = require( '@stdlib/ndarray/to-json' );
// Create a data buffer:
var buffer = zeroTo( 27 );
// Specify array meta data:
var shape = [ 3, 3, 3 ];
var order = 'column-major';
var ndims = shape.length;
// Compute array meta data:
var strides = shape2strides( shape, order );
var offset = strides2offset( shape, strides );
// Print array information:
console.log( '' );
console.log( 'Dims: %s', shape.join( 'x' ) );
// Randomly flip strides and convert an ndarray to JSON...
var arr;
var i;
for ( i = 0; i < 20; i++ ) {
strides[ discreteUniform( 0, ndims-1 ) ] *= -1;
offset = strides2offset( shape, strides );
console.log( '' );
console.log( 'Strides: %s', strides.join( ',' ) );
console.log( 'Offset: %d', offset );
arr = ndarray( 'generic', buffer, shape, strides, offset, order );
console.log( JSON.stringify( ndarray2json( arr ) ) );
}