Improve decoder

* support a object which has no property
Improve decoder

Now decoder raises a parse error when given
objects which have same class but different
properties.