[英]How to get Json Response in Arraylist from List<Item> using RxJava and Kotlin
Facing Problem on getting Response in ArrayList. 在ArrayList中获取响应时遇到的问题。
I have following Respose on String value 我有以下Respose on String值
var res_message: String = ""
res_message = "${result.vehicletypes} "
Getting below Value on this String 低于此字符串的值
[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)]
Retrofit Result is 改造结果为
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)"
Below Code snippest sending request to API. 下面的代码最简洁地向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()
}
)
Model Class 型号类别
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)
I want to get this value on Arralist VehicleType List on below vehicleListArray 我想在VehicleListArray下面的Arralist VehicleType列表上获取此值
private var vehicleListArray: ArrayList<Model.VehicleType>? = null
How we can achieve this. 我们如何实现这一目标。 Thanks in advance. 提前致谢。
Assuming that what you are trying to parse is a response from a service that is able to send you propper format for lists (eg Json) than Retrofit can handle parsing lists with ease. 假设您要解析的是服务的响应,该服务能够向您发送列表的适当格式(例如Json),而Retrofit可以轻松处理解析列表。
In your apiService definition: 在您的apiService定义中:
fun getPeople(token: Whatever): Observable<List<VehicleType>>
And if you don't have it already: 如果还没有的话:
Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
I got solution I have to handle Respose as below code snippet. 我有解决方案,我必须按照下面的代码片段来处理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()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.