class DoubleJsonDeserializer : JsonDeserializer { override fun deserialize(json: JsonElement, typeOfT: Type?, context: JsonDeserializationContext?): Double { if (json is JsonPrimitive && json.isNumber) { return json.asDouble } else if (json is JsonNull) { return Double.NaN } else throw IllegalArgumentException("Cannot deserialize other type than json primitive") } } internal fun provideDeserializerGson(): Gson = GsonBuilder() .registerTypeAdapter(Double::class.java, DoubleJsonDeserializer()) .create()