private <T> List<Field> getAllFields(final Class<T> clazz) {
        final List<Field> fields = new ArrayList<>();
        Class<?> clazz2 = clazz;
        while (clazz2 != Object.class) {
            fields.addAll(Arrays.asList(clazz2.getDeclaredFields()));
            clazz2 = clazz2.getSuperclass();
        }
        return fields;
    }
Gets all @{@link JsonProperty} annotated fields on this obj and its supers
stroom-app/src/test/java/stroom/importexport/TestJsonSerialisation.java