in log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java [145:226]
public void writeValue(final Object value) {
// null
if (value == null) {
writeNull();
}
// map
else if (value instanceof IndexedReadOnlyStringMap) {
final IndexedReadOnlyStringMap map = (IndexedReadOnlyStringMap) value;
writeObject(map);
} else if (value instanceof StringMap) {
final StringMap map = (StringMap) value;
writeObject(map);
} else if (value instanceof Map) {
@SuppressWarnings("unchecked")
final Map<String, Object> map = (Map<String, Object>) value;
writeObject(map);
}
// list & collection
else if (value instanceof List) {
@SuppressWarnings("unchecked")
final List<Object> list = (List<Object>) value;
writeArray(list);
} else if (value instanceof Collection) {
@SuppressWarnings("unchecked")
final Collection<Object> collection = (Collection<Object>) value;
writeArray(collection);
}
// number & boolean
else if (value instanceof Number) {
final Number number = (Number) value;
writeNumber(number);
} else if (value instanceof Boolean) {
final boolean booleanValue = (boolean) value;
writeBoolean(booleanValue);
}
// formattable
else if (value instanceof StringBuilderFormattable) {
final StringBuilderFormattable formattable = (StringBuilderFormattable) value;
writeString(formattable);
}
// arrays
else if (value instanceof char[]) {
final char[] charValues = (char[]) value;
writeArray(charValues);
} else if (value instanceof boolean[]) {
final boolean[] booleanValues = (boolean[]) value;
writeArray(booleanValues);
} else if (value instanceof byte[]) {
final byte[] byteValues = (byte[]) value;
writeArray(byteValues);
} else if (value instanceof short[]) {
final short[] shortValues = (short[]) value;
writeArray(shortValues);
} else if (value instanceof int[]) {
final int[] intValues = (int[]) value;
writeArray(intValues);
} else if (value instanceof long[]) {
final long[] longValues = (long[]) value;
writeArray(longValues);
} else if (value instanceof float[]) {
final float[] floatValues = (float[]) value;
writeArray(floatValues);
} else if (value instanceof double[]) {
final double[] doubleValues = (double[]) value;
writeArray(doubleValues);
} else if (value instanceof Object[]) {
final Object[] values = (Object[]) value;
writeArray(values);
}
// string
else {
final String stringValue = value instanceof String ? (String) value : String.valueOf(value);
writeString(stringValue);
}
}