Android 对于Kotlin中的改装请求,我的模型类应该是什么样子的?
我试图在Kotlin中使用Reformation2创建一个请求,我的Json数据如下所示:Android 对于Kotlin中的改装请求,我的模型类应该是什么样子的?,android,kotlin,request,retrofit,retrofit2,Android,Kotlin,Request,Retrofit,Retrofit2,我试图在Kotlin中使用Reformation2创建一个请求,我的Json数据如下所示: { "actionRights": [ { "hasArticlePriceChangeRights": false, "hasStockLevelViewRights": false } ], "stats": { "errors": 12,
{
"actionRights": [
{
"hasArticlePriceChangeRights": false,
"hasStockLevelViewRights": false
}
],
"stats": {
"errors": 12,
"warnings": 21,
"outOfOrder": 58,
"running": 42
},
"markers": []
}
我需要从我的回复中获取“统计”数据
我的模型课看起来怎么样?我尝试了一些东西,但我得到了这个错误
应为BEGIN_对象,但在第1行第2列路径处为BEGIN_数组$
编辑:我创建了这个ModelClass,但仍然出现以下错误:
应为BEGIN_对象,但在第1行第2列路径$处为BEGIN_数组。
data class StatsModel(
@SerializedName("actionRights") val actionRights : List<ActionRights>,
@SerializedName("stats") val stats : Stats,
@SerializedName("markers") val markers : List<Markers>
) {
data class ActionRights (
@SerializedName("hasArticlePriceChangeRights") val hasArticlePriceChangeRights : Boolean,
@SerializedName("hasStockLevelViewRights") val hasStockLevelViewRights : Boolean
)
data class Stats (
@SerializedName("errors") val errors : Int,
@SerializedName("warnings") val warnings : Int,
@SerializedName("outOfOrder") val outOfOrder : Int,
@SerializedName("running") val running : Int
)
data class Markers (
@SerializedName("deviceGuid") val deviceGuid : String,
@SerializedName("lat") val lat : Double,
@SerializedName("lng") val lng : Double,
@SerializedName("title") val title : Int,
@SerializedName("city") val city : String,
@SerializedName("street") val street : Int,
@SerializedName("serialNumber") val serialNumber : Int,
@SerializedName("LastStatusMessageDateTime") val lastStatusMessageDateTime : String,
@SerializedName("LastStatusMessageBitSet_0_63") val lastStatusMessageBitSet_0_63 : Int,
@SerializedName("LastStatusMessageBitSet_64_127") val lastStatusMessageBitSet_64_127 : Int,
@SerializedName("ActionsStatus") val actionsStatus : Int,
@SerializedName("SpareColumn1") val spareColumn1 : String,
@SerializedName("SpareColumn2") val spareColumn2 : String,
@SerializedName("SpareColumn3") val spareColumn3 : String,
@SerializedName("SpareColumn4") val spareColumn4 : String,
@SerializedName("SpareColumn5") val spareColumn5 : String,
@SerializedName("SpareColumn6") val spareColumn6 : String,
@SerializedName("SpareColumn7") val spareColumn7 : String,
@SerializedName("SpareColumn8") val spareColumn8 : String,
@SerializedName("SpareColumn9") val spareColumn9 : String,
@SerializedName("SpareColumn10") val spareColumn10 : String,
@SerializedName("EstimatedDeliveryDateTime") val estimatedDeliveryDateTime : String,
@SerializedName("IpAddress") val ipAddress : String,
@SerializedName("Active") val active : Int,
@SerializedName("ParentAreaGuid") val parentAreaGuid : String,
@SerializedName("AreaGuid") val areaGuid : String,
@SerializedName("TariffGroupGuid") val tariffGroupGuid : String,
@SerializedName("DeviceType") val deviceType : String,
@SerializedName("EstimateArticleName") val estimateArticleName : String,
@SerializedName("EstimateArticleGuid") val estimateArticleGuid : String,
@SerializedName("lastCoinboxExchange") val lastCoinboxExchange : String,
@SerializedName("lastStatusUpdateTime") val lastStatusUpdateTime : String,
@SerializedName("reportDateTime") val reportDateTime : String,
@SerializedName("hasFinancialInfo") val hasFinancialInfo : Boolean,
@SerializedName("ticketsSold") val ticketsSold : Int,
@SerializedName("cash") val cash : Int,
@SerializedName("cashless") val cashless : Int,
@SerializedName("hasStockLevel") val hasStockLevel : Boolean,
@SerializedName("hasArticlePrices") val hasArticlePrices : Boolean,
@SerializedName("EstDeliveryDays") val estDeliveryDays : String,
@SerializedName("hasOther") val hasOther : Boolean,
@SerializedName("hasOutOfOrder") val hasOutOfOrder : Boolean,
@SerializedName("hasWarning") val hasWarning : Boolean,
@SerializedName("hasError") val hasError : Boolean,
@SerializedName("flags") val flags : List<Flags>,
@SerializedName("actionState") val actionState : String,
@SerializedName("spareColumns") val spareColumns : List<SpareColumns>
)
data class Flags (
@SerializedName("ErrorLevel") val errorLevel : Int,
@SerializedName("ErrorFlag") val errorFlag : Int,
@SerializedName("Translation") val translation : String,
@SerializedName("BitPosition") val bitPosition : Int
)
data class SpareColumns (
@SerializedName("key") val key : String,
@SerializedName("value") val value : String
)
}
数据类StatsModel(
@SerializedName(“actionRights”)val actionRights:列表,
@SerializedName(“stats”)val stats:stats,
@SerializedName(“标记”)val标记:列表
) {
数据类操作权限(
@SerializedName(“hasArticlePriceChangeRights”)val hasArticlePriceChangeRights:Boolean,
@SerializedName(“hasStockLevelViewRights”)val hasStockLevelViewRights:布尔值
)
数据类统计数据(
@SerializedName(“错误”)val错误:Int,
@SerializedName(“警告”)val警告:Int,
@SerializedName(“outOfOrder”)val outOfOrder:Int,
@SerializedName(“正在运行”)val正在运行:Int
)
数据类标记(
@SerializedName(“deviceGuid”)val deviceGuid:字符串,
@SerializedName(“lat”)val lat:Double,
@序列化名称(“lng”)值lng:Double,
@序列化名称(“标题”)val标题:Int,
@SerializedName(“城市”)val city:String,
@序列化名称(“街道”)val street:Int,
@SerializedName(“serialNumber”)val serialNumber:Int,
@SerializedName(“LastStatusMessageDateTime”)val LastStatusMessageDateTime:String,
@SerializedName(“LastStatusMessageBitSet_0_63”)val LastStatusMessageBitSet_0_63:Int,
@SerializedName(“LastStatusMessageBitSet_64_127”)val LastStatusMessageBitSet_64_127:Int,
@SerializedName(“ActionsStatus”)val ActionsStatus:Int,
@SerializedName(“SpareColumn1”)val SpareColumn1:String,
@SerializedName(“SpareColumn2”)val SpareColumn2:String,
@SerializedName(“SpareColumn3”)val SpareColumn3:String,
@SerializedName(“SpareColumn4”)val SpareColumn4:String,
@SerializedName(“SpareColumn5”)val SpareColumn5:String,
@SerializedName(“SpareColumn6”)val SpareColumn6:String,
@SerializedName(“SpareColumn7”)val SpareColumn7:String,
@SerializedName(“SpareColumn8”)val SpareColumn8:String,
@SerializedName(“SpareColumn9”)val SpareColumn9:String,
@SerializedName(“SpareColumn10”)val SpareColumn10:String,
@SerializedName(“EstimatedDeliveryDateTime”)val EstimatedDeliveryDateTime:字符串,
@SerializedName(“IpAddress”)val IpAddress:字符串,
@SerializedName(“活动”)val活动:Int,
@SerializedName(“ParentAreaGuid”)val ParentAreaGuid:字符串,
@SerializedName(“AreaGuid”)val AreaGuid:字符串,
@SerializedName(“TariffGroupGuid”)val TariffGroupGuid:String,
@SerializedName(“DeviceType”)val DeviceType:String,
@SerializedName(“EstimateArticleName”)val EstimateArticleName:String,
@SerializedName(“EstimateArticleGuid”)val EstimateArticleGuid:字符串,
@SerializedName(“lastCoinboxExchange”)val lastCoinboxExchange:String,
@SerializedName(“lastStatusUpdateTime”)val lastStatusUpdateTime:String,
@SerializedName(“reportDateTime”)val reportDateTime:String,
@SerializedName(“hasFinancialInfo”)val hasFinancialInfo:Boolean,
@SerializedName(“TicketsSeld”)val TicketsSeld:Int,
@序列化名称(“现金”)val cash:Int,
@SerializedName(“无现金”)val cashless:Int,
@SerializedName(“hasStockLevel”)val hasStockLevel:Boolean,
@SerializedName(“hasArticlePrices”)val hasArticlePrices:Boolean,
@SerializedName(“EstDeliveryDays”)val EstDeliveryDays:String,
@SerializedName(“hasOther”)val hasOther:Boolean,
@SerializedName(“hasOutOfOrder”)val hasOutOfOrder:Boolean,
@SerializedName(“hasWarning”)val hasWarning:Boolean,
@SerializedName(“hasError”)val hasError:Boolean,
@SerializedName(“标志”)val标志:列表,
@SerializedName(“actionState”)val actionState:String,
@SerializedName(“spareColumns”)val spareColumns:List
)
数据类标志(
@SerializedName(“ErrorLevel”)val ErrorLevel:Int,
@SerializedName(“ErrorFlag”)val ErrorFlag:Int,
@SerializedName(“翻译”)val翻译:字符串,
@SerializedName(“BitPosition”)val BitPosition:Int
)
数据类SpareColumns(
@SerializedName(“键”)val键:字符串,
@SerializedName(“值”)值值:字符串
)
}
我正在处理这样的响应:
fun getStatusService(mandatorGuid: String, @Nullable statusCallbacks: ChartsCallbacks.StatsCallbacks) {
val mandatorItem = MandatorItem(mandatorGuid)
val guid: MutableMap<String, String> = HashMap()
guid["guid"] = mandatorItem.guid
var statusData: StatsModel.Stats
val call: Call<StatsModel> = createAPI().getStatus(mandatorItem.guid)
call.enqueue(object : Callback<StatsModel> {
override fun onFailure(call: Call<StatsModel>, t: Throwable) {
Log.i("TEST", "Status failure: $t")
}
override fun onResponse(call: Call<StatsModel>, response: Response<StatsModel>) {
if (response.isSuccessful) {
Log.i("TEST", "ITEM " + response.headers().toString())
statusData = response.body()!!.stats
Log.i("TEST", "ITEM $statusData")
statusCallbacks.onSuccess(statusData)
}
}
})
}
fun getStatusService(mandatorGuid:String,@Nullable statusCallbacks:ChartsCallbacks.StatsCallbacks){
val mandatorItem=mandatorItem(mandatorGuid)
val guid:MutableMap=HashMap()
guid[“guid”]=强制项.guid
var statusData:StatsModel.Stats
val调用:call=createAPI().getStatus(mandatorItem.guid)
排队(对象:Callback{
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Log.i(“测试”,“状态失败:$t”)
}
覆盖fun onResponse(调用:调用,响应:响应){
if(response.issucessful){
Log.i(“测试”、“项”+响应.headers().toString())
statusData=response.body()!!.stats
Log.i(“测试”,“项目$statusData”)
地位
data class ActionRight(
val hasArticlePriceChangeRights: Boolean?=null,
val hasStockLevelViewRights: Boolean?=null
)
data class Stats(
val errors:Int? = null,
val warnings? = null,
val outOfOrder? = null,
val running? = null
)
data class StatsModel(
val actionRights: ArrrayList<ActionRight>?=null,
val markers: ArrrayList<Any>?=null,
val stats: Stats? = null)