Hexa
03/16/2019, 12:26 AMunchecked casts
warning on these lines (json["test"] as MutableMap<String, Any>)["nodes"] as java.util.ArrayList<MutableMap<String, String>>
. Example import com.fasterxml.jackson.databind.ObjectMapper
private fun parseCarId(response: String): String {
val json = ObjectMapper().readValue(response, Map::class.java) as MutableMap<String, Any>
val cars = (json["test"] as MutableMap<String, Any>)["nodes"] as java.util.ArrayList<MutableMap<String, String>>
val first: MutableMap<String, String> = cars.first { it["carType"] == "tesla" }
return first["id"].orEmpty()
}
. I tried something like this so far but now Im getting a compile time error private fun parseCarId(response: String): String {
val json = ObjectMapper().readValue(response, Map::class.java) as MutableMap<String, Any>
val cars = (json["test"] as MutableMap<*, *>)["nodes"] as java.util.ArrayList<*>
val first: MutableMap<String, String> = cars.first { it["carType"] == "tesla" }
return first["id"].orEmpty()
}
Marc Knaup
03/16/2019, 1:38 AMprivate fun parseCarId(response: String): String {
val json = ObjectMapper().readValue(response, Map::class.java) ?: return ""
val cars = (json["test"] as? Map<*, *>)?.get("nodes") as? List<*> ?: return ""
val first = cars.filterIsInstance<Map<*,*>>().firstOrNull { it["carType"] == "tesla" } ?: return ""
return first["id"] as? String ?: ""
}
Marc Knaup
03/16/2019, 1:41 AMprivate fun parseCarId(response: String) =
ObjectMapper()
.readValue(response, Map::class.java)
?.let { it["test"] as? Map<*, *> }
?.let { it["nodes"] as? List<*> }
?.filterIsInstance<Map<*,*>>()
?.firstOrNull { it["carType"] == "tesla" }
?.let { it["id"] as? String }
.orEmpty()
Hexa
03/16/2019, 7:52 AMHexa
03/16/2019, 7:53 AM