</>AppInitDev DevelopersCentro de aprendizaje Android
IA • Android · TUTORIAL PRÁCTICO

Validar respuestas JSON de IA en Android con Kotlin

Diseña respuestas estructuradas, valida campos y evita fallos al convertir texto de IA en datos.

◎
Objetivo del tutorial

Convertir la respuesta generada en una estructura comprobable antes de mostrarla o guardarla.

CONTEXTO

Por qué es importante

Un modelo generativo puede producir JSON incompleto, cambiar nombres de propiedades o envolver el resultado en texto adicional. La salida de IA es información no confiable: incluso con instrucciones estrictas, siempre necesitas validación del lado del cliente o servidor. En este ejemplo se espera un objeto con dos propiedades y se comprueban valores permitidos.

ANTES DE EMPEZAR

Requisitos

  • Android Studio y un proyecto Kotlin con acceso a una respuesta de IA de prueba.
  • Una biblioteca de serialización compatible con tu proyecto, como kotlinx.serialization; habilita su plugin y dependencias según la documentación oficial.

Trabaja en un proyecto de pruebas. Revisa las versiones y condiciones específicas de la documentación oficial, ya que las APIs y las políticas evolucionan.

PASO A PASO

Implementación

01

Define un contrato pequeño: {"resumen": texto, "categoria": texto}…

Define un contrato pequeño: {"resumen": texto, "categoria": texto}. Escribe los nombres y restricciones antes de diseñar el prompt. Evita solicitar campos que luego no usarás.

02

Solicita a tu proveedor un resultado estructurado si…

Solicita a tu proveedor un resultado estructurado si el modelo y SDK lo permiten. Añade una instrucción que prohíba explicaciones y bloques Markdown alrededor del JSON.

03

Deserializa en una clase Kotlin. Captura SerializationException y…

Deserializa en una clase Kotlin. Captura SerializationException y no muestres una pantalla vacía si la generación no coincide con el esquema.

04

Valida reglas de negocio tras deserializar: resumen no…

Valida reglas de negocio tras deserializar: resumen no vacío, longitud aceptable y categoría dentro de un conjunto conocido. Rechaza valores inesperados.

05

Muestra un estado de error recuperable y permite…

Muestra un estado de error recuperable y permite reintentar. Registra métricas técnicas sin almacenar prompts, respuestas privadas ni datos personales.

06

Prueba contenido válido, JSON truncado, categorías desconocidas, valores…

Prueba contenido válido, JSON truncado, categorías desconocidas, valores vacíos y texto que parece JSON pero no lo es.

EJEMPLO EXPLICADO

Fragmento de referencia

KOTLIN
@Serializable
data class RespuestaIA(val resumen: String, val categoria: String)

fun validar(texto: String): RespuestaIA? = runCatching {
    Json.decodeFromString<RespuestaIA>(texto)
}.getOrNull()?.takeIf {
    it.resumen.isNotBlank() && it.resumen.length <= 300 &&
        it.categoria in setOf("educacion", "productividad", "otros")
}

Ejemplo educativo: cuando se indique, añade las importaciones, dependencias, claves de prueba o clases de tu proyecto. No se presenta como proyecto Android completo y compilado.

EJERCICIO

Ponlo a prueba

Prueba cinco cadenas de texto: una correcta, una sin campo categoria, una vacía, una con HTML y otra con categoría no reconocida. Documenta cómo reacciona tu interfaz.

RESULTADOS

Lista de comprobación

  • La implementación cumple el objetivo: convertir la respuesta generada en una estructura comprobable antes de mostrarla o guardarla.
  • El comportamiento se verificó con datos de prueba y se documentaron los casos de fallo.
  • Los recursos, dependencias y políticas se comprobaron contra las referencias oficiales.
  • No se registran datos sensibles ni se da por probada una mejora sin evidencia.
DEPURACIÓN

Errores habituales

  • Confundir «JSON bien formado» con «información segura»; valida también tipos y reglas de negocio.
  • Pedir reintentos ilimitados ante respuestas erróneas incrementa costos.
  • No hagas parsing manual con split o expresiones regulares para JSON.
PREGUNTAS FRECUENTES

¿Es suficiente escribir “responde solo JSON”?

No. Los modelos pueden incumplir la instrucción. Emplea esquemas compatibles, deserialización estricta y validación adicional.

DOCUMENTACIÓN OFICIAL Y TÉCNICA

Referencias para ampliar

Consulta las versiones, limitaciones y requisitos vigentes antes de integrar los ejemplos en producción.

SIGUE APRENDIENDO

Tutoriales relacionados

← Más tutoriales de Inteligencia artificial con KotlinIr a AppInitDev ↗