HashMap toJson пуст с JSON

Вывод следующий:

private static class Target extends HashMap<String, String> {
}

public static void main(String[] args) {
    final Moshi build = new Moshi.Builder().build();
    final JsonAdapter<Target> adapter = build.adapter(Target.class);
    final Target value = new Target();
    value.put("foo", "bar");
    System.out.println(adapter.toJson(value));
}

является {} - Я бы ожидал {"foo":"bar"} - Как я могу получить ожидаемый результат?

1 ответ

Решение

Используйте класс карты, а не цель при создании JsonAdapter

private static class Target extends HashMap<String, String> {
}

public static void main(String[] args) {
    final Moshi build = new Moshi.Builder().build();
    final JsonAdapter<Map> adapter = build.adapter(Map.class);
    final Target value = new Target();
    value.put("foo", "bar");
    System.out.println(adapter.toJson(value));
}
Другие вопросы по тегам