in util/src/main/java/com/epam/deltix/util/json/ReflectJSON.java [95:166]
public static void formatX (Object obj, StringBuilder sb)
throws IllegalAccessException
{
if (obj == null) {
sb.append ("null");
return;
}
Class <?> cls = obj.getClass ();
if (cls.isPrimitive () ||
obj instanceof Number ||
obj instanceof Boolean)
{
sb.append (obj);
}
else if (obj instanceof CharSequence || cls.isEnum ()) {
formatString (obj.toString (), sb);
}
else if (cls.isArray ()) {
sb.append ("[ ");
int len = Array.getLength (obj);
for (int ii = 0; ii < len; ii++) {
if (ii > 0)
sb.append (',');
formatX (Array.get (obj, ii), sb);
}
sb.append (" ]");
}
else if (obj instanceof Iterable) {
sb.append ("[ ");
boolean first = true;
for (Object elem : (Iterable) obj) {
if (first)
first = false;
else
sb.append (',');
formatX (elem, sb);
}
sb.append (" ]");
}
else {
sb.append ("{ ");
boolean first = true;
for (Field f : obj.getClass ().getFields ()) {
if ((f.getModifiers () & Modifier.STATIC) != 0)
continue;
if (first)
first = false;
else
sb.append (',');
sb.append ('"');
StringUtils.escapeJavaString (f.getName (), sb);
sb.append ("\":");
formatX (f.get (obj), sb);
}
sb.append (" }");
}
}