Parse Java object serialization format using pure JavaScript
npm install java-deserialization


This package started out with the hope of satisfying
some specific need for a given project.
The first version was committed once that need was satisfied.
So far, it makes no claims of completeness or correctness.
But if you need to deserialize some Java objects using JavaScript,
then you might prefer building on that over starting from scratch.
``js`
var javaDeserialization = require("java-deserialization");
var objects = javaDeserialization.parse(buf);
Each object in objects will contain the values of its “normal”class
fields as properties, and two hidden properties.
One is called and represents the class of the object,super
with pointing at its parent class.extends
The other is which is a map from fully qualified class namesextends
to the fields associated with that class.
If one wants to inspect the private field of some specific class,
using will help in cases where a more derived class containsclass
another field of the same name.
The names and extends were deliberately chosen in such a wayutil.inspect
that they are keywords in Java and won't occur in normal field names.
The properties are non-enumerable, so they won't show up in enumerations
and e.g. won't show them by default.
If the class contained custom serialization code,
the output from that is collected in a special property called @.
One can write post-processing code to reformat the data from that list.
Such code has already been added for the following types:
* java.util.ArrayList – extracts a list field which is an ES Arrayjava.util.ArrayDeque
* – extracts a list fieldjava.util.Hashtable
* – extracts a map field which is an ES6 Mapobj
and an for String-valued keysjava.util.HashMap
* – map and obj just as Hashtablejava.util.EnumMap
* – map and obj, the latter with enumjava.util.HashSet
constant names as keys
* – extracts a set` field which is an ES6 Set
Bug reports, suggestions, code contributions and the likes should go
to the project's GitHub page.