Skip to content

Commit 043f8c5

Browse files
committed
fix #189, dynamic codegen broken on map serialization
1 parent c1db5fb commit 043f8c5

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/main/java/com/jsoniter/output/CodegenImplMap.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,6 @@ public static CodegenResult genMap(String cacheKey, ClassInfo classInfo) {
5151
ctx.append("stream.writeMore();");
5252
}
5353
genWriteMapKey(ctx, keyType, noIndention);
54-
if (noIndention) {
55-
ctx.append("stream.write(':');");
56-
} else {
57-
ctx.append("stream.write((byte)':', (byte)' ');");
58-
}
5954
if (isCollectionValueNullable) {
6055
ctx.append("if (entry.getValue() == null) { stream.writeNull(); } else {");
6156
CodegenImplNative.genWriteOp(ctx, "entry.getValue()", valueType, true);

src/test/java/com/jsoniter/output/TestMap.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.jsoniter.output;
22

3-
import com.jsoniter.JsonIterator;
43
import com.jsoniter.spi.Config;
54
import com.jsoniter.spi.Encoder;
65
import com.jsoniter.spi.JsoniterSpi;
@@ -9,6 +8,7 @@
98

109
import java.io.ByteArrayOutputStream;
1110
import java.io.IOException;
11+
import java.math.BigDecimal;
1212
import java.util.HashMap;
1313
import java.util.Map;
1414

@@ -147,4 +147,13 @@ public void test_object_key() {
147147
m.put(1, 2);
148148
assertEquals("{\"1\":2}", JsonStream.serialize(m));
149149
}
150+
151+
public void test_multiple_keys() {
152+
HashMap<String, Object> map = new HashMap<String, Object>();
153+
map.put("destination", "test_destination_value");
154+
map.put("amount", new BigDecimal("0.0000101101"));
155+
map.put("password", "test_pass");
156+
final String serialized = JsonStream.serialize(map);
157+
assertEquals(-1, serialized.indexOf("::"));
158+
}
150159
}

0 commit comments

Comments
 (0)