Android 错误:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第2列路径处为BEGIN_数组$

Android 错误:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第2列路径处为BEGIN_数组$,android,json,kotlin,request,retrofit2,Android,Json,Kotlin,Request,Retrofit2,我正在尝试使用Reformation2创建POST请求,并创建了以下类: 我的JSON数据: 模型类 data class StatsModel( @SerializedName("actionRights") val actionRights : MutableList<ActionRights>?, @SerializedName("stats") val stats : Stats?, @Seria

我正在尝试使用Reformation2创建POST请求,并创建了以下类:

我的JSON数据:

模型类

data class StatsModel(
    @SerializedName("actionRights")
    val actionRights : MutableList<ActionRights>?,
    @SerializedName("stats")
    val stats : Stats?,
    @SerializedName("markers")
    val markers : MutableList<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操作权限:可变列表?,
@SerializedName(“stats”)
val统计:统计?,
@序列化名称(“标记”)
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(“城市”)值城市:字符串?,
@序列化名称(“街道”)瓦尔街:国际?,
@SerializedName(“serialNumber”)val serialNumber:Int?,
@SerializedName(“LastStatusMessageDateTime”)val LastStatusMessageDateTime:字符串?,
@SerializedName(“LastStatusMessageBitSet\u 0\u 63”)val LastStatusMessageBitSet\u 0\u 63:Int?,
@SerializedName(“LastStatusMessageBitSet_64_127”)val LastStatusMessageBitSet_64_127:Int?,
@SerializedName(“ActionsStatus”)val ActionsStatus:Int?,
@SerializedName(“SpareColumn1”)val SpareColumn1:字符串?,
@SerializedName(“SpareColumn2”)val SpareColumn2:字符串?,
@SerializedName(“SpareColumn3”)val SpareColumn3:字符串?,
@SerializedName(“SpareColumn4”)val SpareColumn4:字符串?,
@SerializedName(“SpareColumn5”)val SpareColumn5:字符串?,
@SerializedName(“SpareColumn6”)val SpareColumn6:字符串?,
@SerializedName(“SpareColumn7”)val SpareColumn7:字符串?,
@SerializedName(“SpareColumn8”)val SpareColumn8:字符串?,
@SerializedName(“SpareColumn9”)val SpareColumn9:字符串?,
@SerializedName(“SpareColumn10”)val SpareColumn10:字符串?,
@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:字符串?,
@SerializedName(“EstimateArticleName”)val EstimateArticleName:字符串?,
@SerializedName(“EstimateArticleGuid”)val EstimateArticleGuid:字符串?,
@SerializedName(“lastCoinboxExchange”)val lastCoinboxExchange:String?,
@SerializedName(“lastStatusUpdateTime”)val lastStatusUpdateTime:String?,
@SerializedName(“reportDateTime”)val reportDateTime:字符串?,
@SerializedName(“hasFinancialInfo”)val hasFinancialInfo:Boolean?,
@SerializedName(“TicketsSeld”)val TicketsSeld:Int?,
@序列化名称(“现金”)val现金:Int?,
@SerializedName(“无现金”)val无现金:Int?,
@SerializedName(“hasStockLevel”)val hasStockLevel:布尔值?,
@SerializedName(“hasArticlePrices”)val hasArticlePrices:布尔值?,
@SerializedName(“EstDeliveryDays”)val EstDeliveryDays:字符串?,
@SerializedName(“hasOther”)val hasOther:布尔值?,
@SerializedName(“hasOutOfOrder”)val hasOutOfOrder:Boolean?,
@SerializedName(“hasWarning”)val hasWarning:布尔值?,
@SerializedName(“hasError”)val hasError:布尔值?,
@SerializedName(“标志”)val标志:列表?,
@SerializedName(“actionState”)val actionState:字符串?,
@SerializedName(“spareColumns”)val spareColumns:列表?
)
数据类标志(
@SerializedName(“ErrorLevel”)val ErrorLevel:Int?,
@SerializedName(“ErrorFlag”)val ErrorFlag:Int?,
@SerializedName(“翻译”)val翻译:字符串?,
@SerializedName(“位位置”)val位位置:Int?
)
数据类SpareColumns(
@SerializedName(“键”)值键:字符串?,
@SerializedName(“值”)val值:字符串?
)
请求服务接口:

@GET(NetworkUtils.JSON_SERVICE_URL)
fun getStatus(@Header("guid") guid: String) : Call<StatsModel>
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) {
                statusData = response.body()!!.stats
                Log.i("TEST", "ITEM $statusData")
                statusCallbacks.onSuccess(statusData)

            }
        }
    })
}
@GET(NetworkUtils.JSON\u服务\u URL)
fun getStatus(@Header(“guid”)guid:String):调用
处理响应的方法:

@GET(NetworkUtils.JSON_SERVICE_URL)
fun getStatus(@Header("guid") guid: String) : Call<StatsModel>
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) {
                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){
statusData=response.body()!!.stats
Log.i(“测试”,“项目$statusData”)
statusCallbacks.onSuccess(statusData)
}
}
})
}
我只需要回复中的统计数据! 但每次我尝试执行请求时,都会出现以下错误: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第2列路径$处为BEGIN_数组。 我知道有很多关于这个主题的帖子,但我找不到解决我的专业问题的方法