JSONContext context = getContext();
Path path = context.getPath();
Map value = (Map) object;
try {
TypeContext typeContext = getContext().writeOpenObject();
for (Object key : value.keySet()) {
path.enqueue(key != null ? key.toString() : null);
if (context.isIncluded(key != null ? key.toString() : null, value.get(key))) {
Transformer transformer = context.getTransformer(null, value.get(key));
if(!(transformer instanceof Inline) || !((Inline)transformer).isInline()) {
if (!typeContext.isFirst()) getContext().writeComma();
typeContext.increment();
if( key != null ) {
getContext().writeName(key.toString());
} else {
getContext().writeName(null);
}
}
if( key != null ) {
typeContext.setPropertyName(key.toString());
} else {
typeContext.setPropertyName(null);
}
transformer.transform(value.get(key));
}