in marshaller/json/src/main/java/org/apache/karaf/decanter/marshaller/json/JsonMarshaller.java [224:249]
private void addProperty(JsonObjectBuilder json, String key, Object value) {
key = replaceDotsByUnderscores ? key.replace('.','_') : key;
if (value instanceof BigDecimal) {
json.add(key, (BigDecimal)value);
} else if (value instanceof BigInteger) {
json.add(key, (BigInteger)value);
} else if (value instanceof String) {
json.add(key, (String)value);
} else if (value instanceof Long) {
json.add(key, (Long)value);
} else if (value instanceof Integer) {
json.add(key, (Integer)value);
} else if (value instanceof Float) {
json.add(key, (Float)value);
} else if (value instanceof Double) {
if (Double.isInfinite((Double)value)) {
json.add(key, "Infinity");
} else if (Double.isNaN((Double)value)) {
json.add(key, "NaN");
} else {
json.add(key, (Double)value);
}
} else if (value instanceof Boolean) {
json.add(key, (Boolean)value);
}
}