in java/commons/src/main/java/com/epam/deltix/data/connectors/commons/json/JsonValue.java [226:257]
public void toJson(final JsonWriter jsonWriter) {
if (isNull()) {
jsonWriter.nullValue();
return;
}
if (value instanceof JsonObject) {
((JsonObject) value).toJson(jsonWriter);
return;
}
if (value instanceof JsonArray) {
((JsonArray) value).toJson(jsonWriter);
return;
}
if (value instanceof String) {
jsonWriter.stringValue((String) value, true);
return;
}
if (value instanceof Number) {
final BigDecimal decimal = asDecimal();
jsonWriter.numberValue(decimal.unscaledValue().longValue(), -decimal.scale());
return;
}
if (value instanceof Boolean) {
if (((Boolean) value).booleanValue()) {
jsonWriter.trueValue();
} else {
jsonWriter.falseValue();
}
return;
}
throw new IllegalStateException("Unsupported type of the value: " + value + ". " + value.getClass());
}