如何使用<Item> RxJava 和 Kotlin 从 List 获取 Arraylist 中的 Json 响应



在 ArrayList 中获取响应时面临问题。

我有以下字符串值的回复

var res_message: String = ""
res_message = "${result.vehicletypes} "

低于此字符串的值

[VehicleType(_id=1, vehicleType=Hatchback, __v=0), 
VehicleType(_id=2, vehicleType=Maruti, __v=0), 
VehicleType(_id=3, vehicleType=Honda, __v=0), 
VehicleType(_id=4, vehicleType=Bike, __v=0)] 

改造结果为

vehicletypes = {ArrayList@6055}  size = 4
0 = {Model$VehicleType@6058} "VehicleType(_id=1, 
vehicleType=Hatchback, __v=0)"
1 = {Model$VehicleType@6059} "VehicleType(_id=2, 
vehicleType=Maruti, __v=0)"
2 = {Model$VehicleType@6060} "VehicleType(_id=3, 
vehicleType=Honda, __v=0)"
3 = {Model$VehicleType@6061} "VehicleType(_id=4, 
vehicleType=Bike, __v=0)"

下面的代码截图向 API 发送请求。

disposable = apiServices.getVehicle(token)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result ->

res_message = "${result.vehicletypes} "
Log.d("Type==", res_message)
},
{ error ->
res_message = "${error.message}"
// validateToken()
}
)

模型类

data class Vehicles(val success: Boolean, val vehicletypes: List<VehicleType>, val message: String)
data class VehicleType(val _id: String, val vehicleType: String, val __v: String)

我想在下面的车辆列表数组上的Arralist车辆类型列表中获取此值

private var vehicleListArray: ArrayList<Model.VehicleType>? = null

我们如何实现这一目标。提前谢谢。

假设您尝试解析的是来自服务的响应,该服务能够向您发送列表的propper格式(例如Json),而不是 改造可以轻松处理解析列表。

在 apiService 定义中:

fun getPeople(token: Whatever): Observable<List<VehicleType>>

如果您还没有它:

Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))

我得到了解决方案,我必须按照以下代码片段处理 Respose 。

private fun getVehicleType() { 
disposable?.add(apiServices.getVehicle(token)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::handleResponse, this::handleError))
}
private fun handleResponse(vehicles: Model.Vehicles) {
VehiclesArrayList = ArrayList(vehicles.vehicletypes)
Log.d("type==","n--"+VehiclesArrayList )
mAdapter = DataAdapter(VehiclesArrayList !!, this)
v_android_list.adapter = mAdapter
}
private fun handleError(error: Throwable) {
Log.d("type", error.localizedMessage)
Toast.makeText(context, "Error ${error.localizedMessage}", Toast.LENGTH_SHORT).show()
}

相关内容

  • 没有找到相关文章

最新更新