У меня есть этот метод:
private String serializeToJson(T item) {
String json;
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
try {
json = ow.writeValueAsString(item);
} catch (IOException e) {
e.printStackTrace();
json = "";
}
return json;
}
с этим пунктом:
и все же json
равно:
{
"saveDate" : "12:29:29 29-Mar-02015"
}
почему failureDict
не сериализуется?
и это пункт:
public class FailedResponses {
HashMap<String, Set<String>> failuresDict;
public String saveDate;
public FailedResponses() {
failuresDict = new HashMap<>();
}
Джексон будет работать магией на общественных полях или публичных геттерах и сеттерах. Я бы рекомендовал вам сделать поля вашего объекта приватными для лучшей инкапсуляции и добавить публичные геттеры/сеттеры, чтобы позволить джексону его/сериализовать.
Лично мне нравится использовать аннотации jackson, чтобы сделать его явным, для чего используется объект, и чтобы у вас был полный контроль над наименованием полей, созданных джексоном, без необходимости создавать неидиоматические имена getter/setter или variable