README
hessian.js
Hessian Serialization 1.0 and 2.0 (base on version 4.0.7) written by pure JavaScript. Support all kind of types in Java, with high performance.
Install
$ npm install hessian.js
Support Types
8 primitive types:
- raw binary data
- boolean
- 64-bit millisecond date
- 64-bit double
- 32-bit int
- 64-bit long
- null
- UTF8-encoded string
3 recursive types:
list
for lists and arraysmap
for maps and dictionariesobject
for objects
one special contruct:
- ref for shared and circular object references
Hessian 2.0 has 3 internal reference maps:
- An object/list reference map.
- An class definition reference map.
- A type (class name) reference map.
Encoder
Tips: you can use with js-to-java to help you write java class in js.
Simple javascript type
var hessian = require('hessian.js');
var java = require('js-to-java');
var encoder = new hessian.Encoder();
encoder.write(1); // int
encoder.write(1.1); // double
encoder.write(1e100); // double
encoder.write(Math.pow(2, 18)); // long
encoder.write(true); // boolean
encoder.write(null); // null
encoder.write('test'); // string
// java base types
encoder.write(java.long(3001010320)); // 3001010320L
encoder.write(java.double(100)); // double
encoder.write(java.array.int([0, 1, 2])); // int[] = {0, 1, 2}
var object = {};
object.prop1 = [1, 2, 3];
object.prop2 = 'string';
object.prop3 = {key: 'value'};
object.prop4 = object; // circular
encoder.write(object); // object
Complex java type
var hessian = require('hessian.js');
var encoder = new hessian.Encoder();
var long = {
$class: 'java.lang.Long',
$: 1
}
encoder.write(long); // long type
var testObject = {
$class: 'com.hessian.TestObject',
$: {
a: 1,
b: 'test',
c: {$class: 'java.lang.Long', $: 123}
}
};
encoder.write(testObject);
Java Generic Map
// java code:
// Map<Long, Integer> map = new HashMap<Long, Integer>();
// map.put(123L, 123456);
// map.put(123456L, 123);
var hessian = require('hessian.js');
var encoder = new hessian.Encoder();
// using es6 Map
var map = new Map();
map.set({ '$class': 'java.lang.Long', '