Skip to content

Commit 7c1bdb9

Browse files
committed
Add test case and configurable in JsonStream.java
1 parent 7a4e4b0 commit 7c1bdb9

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,12 @@ public static void setIndentionStep(int indentionStep) {
499499
JsoniterSpi.setCurrentConfig(newConfig);
500500
}
501501

502+
public static void setOmitZero(boolean omitZero) {
503+
Config newConfig = JsoniterSpi.getDefaultConfig().copyBuilder().omitZero(omitZero).build();
504+
JsoniterSpi.setDefaultConfig(newConfig);
505+
JsoniterSpi.setCurrentConfig(newConfig);
506+
}
507+
502508
public static void registerNativeEncoder(Class clazz, Encoder.ReflectionEncoder encoder) {
503509
CodegenImplNative.NATIVE_ENCODERS.put(clazz, encoder);
504510
}

src/test/java/com/jsoniter/TestObject.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import com.jsoniter.annotation.JsonProperty;
44
import com.jsoniter.any.Any;
55
import com.jsoniter.fuzzy.MaybeEmptyArrayDecoder;
6+
import com.jsoniter.output.EncodingMode;
7+
import com.jsoniter.output.JsonStream;
8+
import com.jsoniter.spi.Config;
69
import com.jsoniter.spi.EmptyExtension;
710
import com.jsoniter.spi.JsonException;
811
import com.jsoniter.spi.JsoniterSpi;
@@ -235,4 +238,26 @@ public void test_object_lazy_any_to_string() {
235238
any.asMap().put("field4", Any.wrap(4));
236239
assertEquals("{\"field1\":1,\"field3\":3,\"field2\":2,\"field4\":4}", any.toString());
237240
}
241+
242+
public static class TOmitZero {
243+
244+
public int i;
245+
public long l = 1;
246+
public float f;
247+
public double d = 1;
248+
}
249+
250+
public void test_omit_zero() {
251+
Config def = JsoniterSpi.getCurrentConfig();
252+
try {
253+
JsonStream.setOmitZero(true);
254+
assertEquals("{\"l\":1,\"d\":1}", JsonStream.serialize(new TOmitZero()));
255+
256+
JsonStream.setMode(EncodingMode.DYNAMIC_MODE);
257+
assertEquals("{\"l\":1,\"d\":1}", JsonStream.serialize(new TOmitZero()));
258+
} finally {
259+
JsoniterSpi.setDefaultConfig(def);
260+
JsoniterSpi.setCurrentConfig(def);
261+
}
262+
}
238263
}

0 commit comments

Comments
 (0)