Я пытаюсь создать документ JSON с помощью Джексона.Иерархия выглядит следующим образом:
Событие:
class Event {
private String name = "";
private Set<Integer> admin = new HashSet<>();
private List<House> houseList = new ArrayList<>();
}
Дом:
class House {
private List<OG> OGList = new ArrayList<>();
private int score = 0;
private String name = "";
}
Группа:
class OG {
private int score = 0;
private int id = 0;
}
Каждое событие может состоять иззаданное количество домов, которое, в свою очередь, состоит из заданного количества групп.В каждом доме и группе также есть модификатор счета.
В настоящее время я печатаю документ JSON с использованием довольно красивого метода печати:
ObjectMapper mapper = new ObjectMapper();
File f = new File("./db/" + dir);
if (f.exists() && !f.isDirectory()) {
return "This event name is taken. Please try again.";
}
try {
mapper.writeValue(f, event);
// Convert object to JSON string and pretty print
String jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(event);
System.out.println(jsonInString);
}
}
Полученный результат выглядит довольно уродливо:
{
"name" : "test",
"admin" : [ 423766405 ],
"houseList" : [ {
"score" : 0,
"name" : "first",
"oglist" : [ {
"score" : 0,
"id" : 0
}, {
"score" : 0,
"id" : 1
}, {
"score" : 0,
"id" : 2
} ]
..
}
Есть ли лучший способ отформатировать вывод, например:
name:
test
admin:
a
b
c
houses:
name:
first
group:
1
..