¿Qué significa el código "val jsonObj = json como JsonObject" en Kotlin?

El siguiente código de muestra es de una página web, ¿podría decirme qué significa el código val jsonObj = json as JsonObject ? ¿Es la palabra as palabra key de Kotlin?

¡Gracias!

 open class WeatherDeserializer : JsonDeserializer<WeatherObject> { override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): WeatherObject? { val jsonObj = json as JsonObject val wheather = WeatherObject() val wind = WindObject() val jsonWeatherArray = jsonObj.getAsJsonArray("weather").get(0) val jsonMainObj = jsonObj.getAsJsonObject("main") val jsonWindObj = jsonObj.getAsJsonObject("wind") wheather.main = jsonWeatherArray.asJsonObject.get("main").asString wheather.description = jsonWeatherArray.asJsonObject.get("description").asString wheather.temp = jsonMainObj.get("temp").asFloat wheather.tempMax = jsonMainObj.get("temp_max").asFloat wheather.tempMin = jsonMainObj.get("temp_min").asFloat wheather.humidity = jsonMainObj.get("humidity").asInt wind.speed = jsonWindObj.get("speed").asFloat wind.deg = jsonWindObj.get("deg").asFloat wheather.wind = wind return wheather } } 

Tu json está siendo JsonObject a JsonObject . as es una palabra key de lanzamiento en Kotlin.

as nos proporciona el reparto inseguro. Esa es una exception lanzada si el lanzamiento no es posible.

Otras lecturas

as es un operador de conversión de tipo.

Así que esto acaba de lanzar su object json de JsonElement a JsonObject .

Justo como el equivalente en Java de JsonObject jsonObject = (JsonObject) json;

Para get más información, lea este https://kotlinlang.org/docs/reference/typecasts.html#unsafe-cast-operator

  • ¿Convertir mi proyecto de estudio andorid existente a kotlin?
  • Recolectando artículos con las transmisiones de Kotlin
  • Copiando un file automáticamente con un pom
  • Cambio observable a condición cumplida - RxJava2
  • Obtención de class no encontrada Excepción al usar KotlinJsonAdapterFactory () en Moshi 1.5 con Kotlin
  • ¿Cómo puedo refactorizar una vista para permitir el filtrado de elementos vinculados a un observable ArrayList dentro de una aplicación tornadofx?
  • Carga concurrente de files S3 a través de Koutlin Coroutines
  • Cómo agregar varias instrucciones dentro de una instrucción when en kotlin
  • Asegurar que se inicializa un valor en Kotlin
  • @Antes de que la anotación sea ignorada por kotlin en la testing de expreso?
  • cómo acceder al object complementario desde la instancia del object en kotlin?