Пользовательское поле Моши не работает при сериализации - PullRequest
0 голосов
/ 01 мая 2019

Я использую Moshi 1.8.0 на Android и следую инструкциям в документации Moshi для создания пользовательских полей: https://github.com/square/moshi#custom-field-names-with-json

Это означает, что мой класс данных запроса выглядит следующим образом:

data class GetStuff(
        @Json(name = "RequestContext") val context: RequestContext,           
)

но проблема в том, что фактический HTTP-запрос отправляется так:

{"context": "blah... }

Я ожидаю, что моя просьба будет выглядеть следующим образом:

{"RequestContext": "blah... }

Кажется, это нормально работает для ответа, но я не могу понять, как заставить его работать для запроса.

Спасибо! Разве это не так, как аннотация @Json(name = "") работает для запроса?

1 Ответ

0 голосов
/ 01 мая 2019

Тьфу, я идиот.

Я отвечу на это тем, кому это понадобится в будущем (скорее всего, я снова).

Чтобы преобразовать Json в класс данных, вам нужно изменить вызов API, чтобы иметь эту аннотацию:

@MoshiDeserialization

Я знал это, и это волшебная аннотация, которая делает десериализацию эффективной.

Однако я не знал, что мне также нужна вторая магическая аннотация для работы сериализации:

@MoshiSerialization

Теперь это работает.

...