Использование Moshi в функции расширения или внедрение его через DI в AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Использование Moshi в функции расширения или внедрение его через DI в Android

Сообщение Anonymous »

В Android я использую функцию расширения для сопоставления неудавшегося сетевого ответа с моим запечатанным классом ErrorResponse.

Код: Выделить всё

@JsonClass(generateAdapter = true)
data class ErrorResponse(
@Json(name = "code") val code: String,
@Json(name = "message") val message: String,
@Json(name = "id") val id: String,
@Json(name = "path") val path: String
)
«Проблема» заключается в том, что мне нужно использовать Moshi JsonAdapter для анализа ответа JSON на этот класс ErrorResponse.
У меня есть следующие строки:

Код: Выделить всё

val moshi = Moshi.Builder().build()
val adapter: JsonAdapter = moshi.adapter(ErrorResponse::class.java)
val error = try {
adapter.fromJson(it.response()?.errorBody()?.string() ?: "")
} catch (e: JsonDataException) {
Timber.e(e, "Network response: JsonDataException")
ErrorResponse.empty()
}
Но, как я уже сказал, мы используем расширение для отображения ответа, поэтому я не думаю, что лучше создавать новый Moshi< /code> при каждом запросе API (?).
Я также использую Koin и при необходимости могу внедрить Moshi.
Мой вопрос заключается в том, каков наиболее оптимальный способ добиться этого, чтобы не создавать несколько объектов Moshi (и, следовательно, влияют на производительность/память)?
  • Создайте объект Moshi как переменную верхнего уровня.
  • Используйте объект в Kotlin, который внедрит Moshi и определит это развлечение, тогда как Moshi объявлен как одиночный в Koin, поэтому по сути это синглтон?
  • Inject Moshi функция расширения?
  • Другое??


Подробнее здесь: https://stackoverflow.com/questions/787 ... in-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • При использовании Moshi в Kotlin (Android) подписи Moshi.adapter() отличаются от документов.
    Anonymous » » в форуме Android
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Не удалось найти com.squareup.moshi:moshi-kotlin-reflect:1.15.1
    Anonymous » » в форуме Android
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Java android moshi анализирует Json в объект
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Java android moshi анализирует Json в объект
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Com.airbnb.lottie.parser.moshi.JsonDataException: ожидалось двойное значение, но было END_ARRAY по пути $.layers[0].shap
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»