private void end(String val, char jsonStructureTag)
throws DeserializerException {
ObjectDeserializerHolder objHolder = (ObjectDeserializerHolder) _objHolderStack
.pop();
if (jsonStructureTag != objHolder.getJsonStructureTag()) {
throw new DeserializerException("Wrong sequence: Expected '"
+ jsonStructureTag + "' but was '" + objHolder.getJsonStructureTag()
+ "'");
}
Object obj = objHolder.getSer().endDeserialize(objHolder.getObj(), val);
objHolder.setObj(obj);
try {
ObjectDeserializerHolder parentHolder = (ObjectDeserializerHolder) _objHolderStack
.peek();
parentHolder.getSer().setMember(parentHolder.getObj(),
objHolder.getName(), obj);
} catch (java.util.EmptyStackException e) {
// leave the top level object at the stack
_objHolderStack.push(objHolder);
} catch (NoSuchFieldException e) {
if (!PropertyHelper.parseBoolean(_propertyMap,
PropertyKeys.SKIP_UNKNOWN_FIELDS)) {
throw new DeserializerException("no such field: " + e.getMessage());
}
}
_name = null;
}