So behandeln Sie eine Array von Daten in der NachrüstreaktionAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 So behandeln Sie eine Array von Daten in der Nachrüstreaktion

Post by Anonymous »

Ich erstelle eine App muss einige Daten von 2 Endpunkten ziehen:/api/produkt JSON und das funktioniert gut. Der zweite Endpunkt gibt jedoch kein JSON, sondern ein Array von Objekten zurück. >

Code: Select all

[["Model",123],["ModelB",456],["ModelC",789]]
Wenn die anderen Endpunkte das "Usuelle" JSON zurückgeben. /> Das Nachrüstmodul ist wie unten eingerichtet: < /p>

Code: Select all

@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()
}
Dies funktioniert gut beim Aufrufen von API/Products , aber ich habe unten einen Fehler erhalten, wenn ich API/Typ :
verwendet habe

Code: Select all

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 3 path $[0]
< /code>
Der API -Dienst ist wie unten: < /p>
interface Service {

@GET("api/type")
suspend fun getType(): Array
>
< /code>
Ich verstehe, dass das Problem darin besteht, dass für einen Endpunkt die Antwort ein JSON ist und im anderen Fall ein Array wie: [["Modell", 123], ["Modellb" , 456], ["modellc", 789]] 
Irgendwelche Idee, wie es funktioniert? Ich unterstütze sowohl JSON als auch Array gleichzeitig?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post