Java - Gson не работает с объектом, определенным на лету - PullRequest
0 голосов
/ 17 мая 2018

Я бы не хотел определять дополнительный тип только для преобразования json. Я использую библиотеку, которой нужен объект в качестве входных данных, а затем выполняет операции http с этими данными, поэтому я не могу использовать жестко закодированную строку json в качестве входных данных.

private static final Gson GSON = new Gson();

public static void main(String[] args) {
  System.out.println(GSON.toJson(new Object() {
    private String email_address = "me@mail.eu";
    public String getEmail_address() {return "me@mail.eu"; }
    public void setEmail_address(String mail) {email_address = mail; }
  }));    
}

Я пытался удалить получатель и установщик или оставить получатель и удалить поле, но это не работает. Кто-нибудь знает, как это исправить?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Библиотеки для сериализации / десериализации Json, такие как Gson, рассчитывают на то, что вы определили свой пользовательский объект, для которого вы будете отображать строку json.Это потому, что они используют отражение в классе для сопоставления полей с соответствующими ключами в json.Без этого трудно, что они могут достичь чего-либо (пригодного для использования).

0 голосов
/ 17 мая 2018

Почему бы не определить дополнительный тип? Мы не в 1980-х. Я бы лично использовал DTO. Что такое объект передачи данных?

Но, возможно, ответ на ваш вопрос находится здесь: Java - Использует ли Google GSON конструкторы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...