in iep-admin/src/main/java/com/netflix/iep/admin/endpoints/JmxEndpoint.java [111:135]
private Object fixValue(Object obj) {
if (obj instanceof CompositeData cd) {
Map<String, Object> map = new TreeMap<>();
for (String k : cd.getCompositeType().keySet()) {
map.put(k, fixValue(cd.get(k)));
}
return map;
} else if (obj instanceof TabularData td) {
return td.values()
.stream()
.map(this::fixValue)
.collect(Collectors.toList());
} else if (obj != null && obj.getClass().isArray()) {
List<Object> vs = new ArrayList<>();
int len = Array.getLength(obj);
for (int i = 0; i < len; ++i) {
vs.add(fixValue(Array.get(obj, i)));
}
return vs;
} else if (obj instanceof Number) {
return obj;
} else {
return "" + obj;
}
}