File tree Expand file tree Collapse file tree
main/java/com/jsoniter/output
test/java/com/jsoniter/output Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -41,7 +41,13 @@ public static CodegenResult genObject(ClassInfo classInfo) {
4141 if (noIndention ) {
4242 ctx .buffer ('}' );
4343 } else {
44- ctx .append ("if (notFirst) { stream.writeObjectEnd(); } else { stream.write('}'); }" );
44+ if (notFirst == 1 ) { // definitely not first
45+ ctx .append ("stream.writeObjectEnd();" );
46+ } else if (notFirst == 2 ) { // // maybe not first, previous field is omitNull
47+ ctx .append ("if (notFirst) { stream.writeObjectEnd(); } else { stream.write('}'); }" );
48+ } else { // this is the first
49+ ctx .append ("stream.write('}');" );
50+ }
4551 }
4652 } else {
4753 ctx .buffer ("{}" );
Original file line number Diff line number Diff line change @@ -321,4 +321,19 @@ public void test_indention_with_empty_object() {
321321 .build ();
322322 assertEquals ("{}" , JsonStream .serialize (config , new TestObject15 ()));
323323 }
324+
325+ public static class TestObject16 {
326+ @ JsonProperty (omitNull = false )
327+ public Integer i ;
328+ }
329+
330+ public void test_missing_notFirst () {
331+ Config cfg = JsoniterSpi .getCurrentConfig ().copyBuilder ()
332+ .indentionStep (2 )
333+ .encodingMode (EncodingMode .DYNAMIC_MODE )
334+ .build ();
335+ assertEquals ("{\n " +
336+ " \" i\" : null\n " +
337+ "}" , JsonStream .serialize (cfg , new TestObject16 ()));
338+ }
324339}
You can’t perform that action at this time.
0 commit comments