Skip to content

Commit 0105fa0

Browse files
committed
[Java] Support empty JSON messages. Issue #799.
1 parent ad76638 commit 0105fa0

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/json/JsonTokenListener.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,13 @@ public void onBitSet(
131131
}
132132
}
133133
output.append(" }");
134-
135134
next();
136135
}
137136

138137
public void onBeginComposite(
139138
final Token fieldToken, final List<Token> tokens, final int fromIndex, final int toIndex)
140139
{
141140
++compositeLevel;
142-
143141
property(determineName(1, fieldToken, tokens, fromIndex));
144142
output.append('\n');
145143
startObject();
@@ -270,11 +268,13 @@ private void appendEncodingAsString(
270268

271269
for (int i = 0; i < arrayLength; i++)
272270
{
271+
if (i > 0)
272+
{
273+
output.append(", ");
274+
}
273275
Types.appendAsJsonString(output, constOrNotPresentValue, encoding);
274-
output.append(", ");
275276
}
276277

277-
backup();
278278
output.append(']');
279279
}
280280
}
@@ -307,11 +307,13 @@ private void appendEncodingAsString(
307307

308308
for (int i = 0; i < size; i++)
309309
{
310+
if (i > 0)
311+
{
312+
output.append(", ");
313+
}
310314
Types.appendAsJsonString(output, buffer, index + (i * elementSize), encoding);
311-
output.append(", ");
312315
}
313316

314-
backup();
315317
output.append(']');
316318
}
317319
}
@@ -320,7 +322,11 @@ private void appendEncodingAsString(
320322

321323
private void backup()
322324
{
323-
output.setLength(output.length() - 2);
325+
final int newLength = output.length() - 2;
326+
if (output.charAt(newLength) == ',')
327+
{
328+
output.setLength(newLength);
329+
}
324330
}
325331

326332
private void indent()

0 commit comments

Comments
 (0)