#Json
1 messages · Page 1 of 1 (latest)
Mi bro, creo que vas a tener que hacer un adapter en donde puedas convertir (deserialize) el json manualmente. Me puedes pasar un ejemplo del json?
Acabo de ver el mensaje.....lo puedo solucionar creando una data class y que me devuelva un objeto con los valores del json(pero no quiero 😀) o simplemente quitando el primer y el último carácter ( las comillas que sobran). Yo lo que quiero saber es porque pasa esto.....no se si me he explicado bien 🤔
Creo que no te entiendo completamente 😅.
En mi experiencia, si el JSON llega con doble doble comillas, el servidor no te esta enviando en el formato correcto. Tienes un ejemplo del json como viene del servidor? Antes de convertirlo?
este podria ser un ejemplo : {
"fecha": "2024-06-12 00:00:00",
"dia_semana": "mi\u00e9rcoles",
"id_sorteo": "1240101164",
"game_id": "BONO",
"apertura": "2024-06-11 21:10:00",
"cierre": "2024-06-12 21:00:00",
"anyo": "2024",
"premio_bote": null,
"destacar_bote": "0",
"cdc": "12401",
"recaudacion": null,
"estado": "abierto"
}
Hey @opaque jolt, ¡has avanzando al nivel 2! 
...y esta es la manera de obtener el json : suspend inline fun <reified T> getInfoFromURL(url: String): List<T> {
val json = Json {
coerceInputValues = true
ignoreUnknownKeys = true
}
try {
val response: HttpResponse = client.get(url)
val dataString = response.bodyAsText()
return json.decodeFromString(dataString)
} catch (e: Exception) {
Log.e("ERROR en obtener resultados deasde $url", e.message.toString())
throw e
}
}
asi es solamente si quiero que me devuelva in JsonObject : suspend fun getInfoFromURL(url: String): List<JsonObject> {
val json = Json {
coerceInputValues = true
ignoreUnknownKeys = true
}
try {
val response: HttpResponse = client.get(url)
val dataString = response.bodyAsText()
return json.decodeFromString(dataString)
} catch (e: Exception) {
Log.e("ERROR en obtener resultados deasde $url", e.message.toString())
throw e
}
}
...y cuando intento parsear la fecha me da : Exception in thread "main" java.text.ParseException: Unparseable date: ""2024-06-10 21:42:00""
json no sabe como leer esa fecha. Le tienes que decir a json como hacer eso manualmente
misterio resuelto 🤙 , el problema venia de como obtenia los valores del json ( .get("fecha").toString ) y la manera correcta es .get("fecha")?.jsonPrimitive?.content .......
Listo 👍🏾 . Que estas creando?