1
resposta

Estou com erro em abrir um json em um formato um pouco diferente com [

{"resposta":[{"cod_uf":"42","cod_agencia":"420900300","nome":"JOA\u00c7ABA","uorg":"336","intra_municipal":"0","cobertura":""}] Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 14 path $.resposta

Acredito q o ero seja por causa do formato diferente tem como personalizar o formato de leitura do json?

1 resposta

Olá, César. Tudo bem?

O erro "Expected BEGIN_OBJECT but was BEGIN_ARRAY" indica que o Gson está esperando um objeto JSON, mas encontrou um array. No seu JSON, a chave "resposta" contém um array de objetos, e não um único objeto.

Para resolver isso, você precisa ajustar a sua classe de dados para refletir essa estrutura. Aqui está um exemplo de como você pode definir suas data classes para lidar com essa situação:

data class Resposta(
    val cod_uf: String,
    val cod_agencia: String,
    val nome: String,
    val uorg: String,
    val intra_municipal: String,
    val cobertura: String
)

data class ApiResponse(
    val resposta: List<Resposta>
)

E ao desserializar o JSON, você deve usar a classe ApiResponse:

val gson = Gson()
val apiResponse = gson.fromJson(jsonString, ApiResponse::class.java)

Dessa forma, o Gson entenderá que "resposta" é uma lista de objetos Resposta e conseguirá fazer a desserialização corretamente.

Espero ter ajudado.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!