GitXplorerGitXplorer
g

nodeJavaDeserialization

public
24 stars
6 forks
2 issues

Commits

List of commits on branch master.
Unverified
3d3e1dfd7755fdbdaac8a8da75134dcfc8a0b353

Add some badges to README

ggagern committed 7 years ago
Unverified
4015ebf808fe401861ae795fc1cb9fecff7b0dc0

Only publish to coveralls for a single matrix element

ggagern committed 7 years ago
Unverified
89faf6ed39bfb46a5acbd73a7e8b79e9ea5d3fe6

Add coveralls integration

ggagern committed 7 years ago
Unverified
1e7a6587bbf42084d0250f54cba7808598d5de5f

Use strict mode in more places

ggagern committed 7 years ago
Unverified
a35c4c4b7ded633d8e2cbe3ef6929d3edadf8220

Set up Travis CI

ggagern committed 7 years ago
Unverified
88f346c98edbc725b245412aadc2ec917a73aef3

Test long string and long data block

ggagern committed 7 years ago

README

The README file for this repository.

Java Deserialization for Node

npm version build status coverage status

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.

Usage

var javaDeserialization = require("java-deserialization");
var objects = javaDeserialization.parse(buf);

Each object in objects will contain the values of its “normal” fields as properties, and two hidden properties. One is called class and represents the class of the object, with super pointing at its parent class. The other is extends which is a map from fully qualified class names to the fields associated with that class. If one wants to inspect the private field of some specific class, using extends will help in cases where a more derived class contains another field of the same name. The names class and extends were deliberately chosen in such a way 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. util.inspect won't show them by default.

Custom deserialization code

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 Array
  • java.util.ArrayDeque – extracts a list field
  • java.util.Hashtable – extracts a map field which is an ES6 Map and an obj for String-valued keys
  • java.util.HashMapmap and obj just as Hashtable
  • java.util.EnumMapmap and obj, the latter with enum constant names as keys
  • java.util.HashSet – extracts a set field which is an ES6 Set

Contributing

Bug reports, suggestions, code contributions and the likes should go to the project's GitHub page.