diff --git a/java/src/json/ext/Generator.java b/java/src/json/ext/Generator.java index 914d00e7..5cc00a39 100644 --- a/java/src/json/ext/Generator.java +++ b/java/src/json/ext/Generator.java @@ -334,6 +334,8 @@ void generate(final Session session, RubyHash object, buffer.append((byte)'{'); buffer.append(objectNl); + + final int[] count = new int[]{0}; object.visitAll(new RubyHash.Visitor() { private boolean firstPair = true; @@ -357,10 +359,11 @@ public void visit(IRubyObject key, IRubyObject value) { Handler valueHandler = getHandlerFor(runtime, value); valueHandler.generate(session, value, buffer); session.infectBy(value); + count[0]++; } }); state.decreaseDepth(); - if (objectNl.length() != 0) { + if (count[0] > 0 && objectNl.length() != 0) { buffer.append(objectNl); buffer.append(Utils.repeat(state.getIndent(), state.getDepth())); }