¿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

  • Acceda al tipo de delegado de Kotlin sin una instancia
  • Android Firebase auth: class de descriptor de module local para com.google.android.gms.crash y com.google.firebase.auth no encontrado
  • problemas de layout y errores en aplicaciones de Android desarrolladas usando kotlin
  • Seleccionar image de la galería usando Kotlin
  • Referencia no resuelta usando Kotlin para android
  • Error de la biblioteca de la sala Android: no se puede encontrar el setter para el campo. (Kotlin)
  • Kotlin @JvmStatic y anulación accidental en un object complementario
  • Kotlin: ¿por qué usar classs abstractas (frente a interfaces)?
  • No se puede usar el procesador de anotación local en el proyecto Android Kotlin
  • Problemas con HasSupportFragmentInjector en kotlin - DispatchingAndroidInjector es nulo
  • Kotlin devuelve el mismo object del método Factory