Как обрабатывать массив данных в ответе на модернизациюAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как обрабатывать массив данных в ответе на модернизацию

Сообщение Anonymous »

Я строю приложение, необходимое для извлечения некоторых данных из 2 конечных точек:/api/products и/api/type
Первая конечная точка возвращает a Json, и это работает нормально. Тем не менее, вторая конечная точка не возвращает JSON, а массив объекта.
Ответ, отправленный обратно API/type , выглядит так:

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

[["Model",123],["ModelB",456],["ModelC",789]]
Когда другие конечные точки возвращают «обычный» json. /> Модуль модернизации установлен, как ниже: < /p>

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

@InstallIn(SingletonComponent::class)
@Module
class APIModule {

@Singleton
@Provides
@Named("default")
fun provideDefaultOkHttpClient(): OkHttpClient =
OkHttpClient
.Builder()
.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
.build()

@Singleton
@Provides
fun provideRetrofit(
@Named("default") okHttpClient: OkHttpClient
): Retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://test.com")
.client(okHttpClient)
.build()
}
Это работает нормально при вызове API/Products Но я получил ошибку ниже при использовании API/type :

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

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 3 path $[0]
< /code>
Служба API такая же, как ниже: < /p>
interface Service {

@GET("api/type")
suspend fun getType(): Array
>
< /code>
Я понимаю, что проблема в том, что с одной конечной точки ответ - это JSON, а в другом случае это массив, подобный: [[«Модель», 123], ["modelB" , 456], ["modelc", 789]] 
есть идея, как это сделать? мне одновременно поддерживать и JSON, и массив?

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-response
Ответить

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

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

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

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

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