Почему происходит ошибка "ktor client error serialization illegal input" при сериализации JSON?
Подскажите пожалуйста, в чём может быть ошибка? У меня есть два дата класса для получения и серилизации JSON
. При выполнении кода возникает ошибка:
Exception in stream "main" io.ktor.serialization.JsonConvertException: Invalid input Thrown:
kotlinx.serialization.json.internal.JsonDecodingException: Expected object
start '{' but got 'EOF' instead at path: $JSON input: . ....-21T01:41:59.300Z","created_at":"2023-02-21T01:41:59.300Z"}]
Вот код:
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.engine.*
import io.ktor.client.engine.cio.*
import io.ktor.client.plugins.contentnegotiation.*
import io.ktor.client.request.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.coroutines.runBlocking
import kotlinx.serialization.Serializable
@Serializable
data class RandomBrewerysListA(
var brewerys: List<RandomBreweryItemA>
)
@Serializable
data class RandomBreweryItemA(
var id: String,
var name: String,
var brewery_type: String,
var street: String,
var address_2: String? = null,
var address_3: String? = null,
var city: String,
var state: String,
var county_province: String? = null,
var postal_code: String,
var country: String,
var longitude: String? = null,
var latitude: String? = null,
var phone: String? = null,
var website_url: String? = null,
var updated_at: String,
var created_at: String
)
class BreweryApiA(engine: HttpClientEngine){
private val httpClient = HttpClient(engine) {
install(ContentNegotiation) {
json()
}
}
suspend fun getListBreweries(): RandomBrewerysListA = httpClient.get("https://api.openbrewerydb.org/breweries/random").body()
}
fun main(){
runBlocking {
val listBrewery = BreweryApiA(CIO.create())
val brewers = listBrewery.getListBreweries()
println(brewers)
}
}
Источник: Stack Overflow на русском