【问题标题】:java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 10 path $.Datajava.lang.IllegalStateException:应为 BEGIN_OBJECT,但在第 1 行第 10 列路径 $.Data 为字符串
【发布时间】:2022-07-20 11:29:22
【问题描述】:

我的回应

{
    "Data": {
        "DashboardData": [
            {
                "LitreM": "1500.00",
                "LitreE": "3000.00",
                "AmountM": "75000.00",
                "AmountE": "150000.00",
                "TransactionDate": "05-20-2021",
                "ItemId": 1,
                "HasMLitre": true,
                "HasELitre": true
            },
            {
                "LitreM": "1600.00",
                "LitreE": "3200.00",
                "AmountM": "64000.00",
                "AmountE": "128000.00",
                "TransactionDate": "05-20-2021",
                "ItemId": 2,
                "HasMLitre": true,
                "HasELitre": true
            },
            {
                "LitreM": "3000.00",
                "LitreE": "1500.00",
                "AmountM": "150000.00",
                "AmountE": "75000.00",
                "TransactionDate": "05-19-2021",
                "ItemId": 1,
                "HasMLitre": true,
                "HasELitre": true
            },
            {
                "LitreM": "1600.00",
                "LitreE": "1600.00",
                "AmountM": "64000.00",
                "AmountE": "64000.00",
                "TransactionDate": "05-19-2021",
                "ItemId": 2,
                "HasMLitre": true,
                "HasELitre": true
            }
        ],
        "MilkRate": [
            {
                "ItemId": 1,
                "MilkRate": "50.00"
            },
            {
                "ItemId": 2,
                "MilkRate": "40.00"
            }
        ]
    },
    "Errors": [],
    "Message": "OK",
    "StatusCode": 200
}

我的模型类是使用 JSON 中的 POJO 自动生成的。

import com.google.gson.annotations.SerializedName

data class Response(

    @SerializedName("Errors")
    val errors: List<Any?>? = null,

    @SerializedName("Message")
    val message: String? = null,

    @SerializedName("Data")
    val data: Data? = null,

    @SerializedName("StatusCode")
    val statusCode: Int? = null
)

data class Data(

    @SerializedName("DashboardData")
    val dashboardData: List<DashboardDataItem?>? = null,

    @SerializedName("MilkRate")
    val milkRate: List<MilkRateItem?>? = null
)

data class MilkRateItem(

    @SerializedName("MilkRate")
    val milkRate: String? = null,

    @SerializedName("ItemId")
    val itemId: Int? = null
)

data class DashboardDataItem(

    @SerializedName("HasELitre")
    val hasELitre: Boolean? = null,

    @SerializedName("HasMLitre")
    val hasMLitre: Boolean? = null,

    @SerializedName("LitreE")
    val litreE: String? = null,

    @SerializedName("AmountE")
    val amountE: String? = null,

    @SerializedName("LitreM")
    val litreM: String? = null,

    @SerializedName("AmountM")
    val amountM: String? = null,

    @SerializedName("ItemId")
    val itemId: Int? = null,

    @SerializedName("TransactionDate")
    val transactionDate: String? = null
)

我收到了响应,但它会抛出此错误。我知道这个已经问过的问题,但没有针对这个问题的确切解决方案。

【问题讨论】:

    标签: android api kotlin retrofit


    【解决方案1】:

    试试这个

    data class Response(
        @SerializedName("Data")
        val data: Data?,
        
        @SerializedName("Errors")
        val errors: List<String>?,
        
        @SerializedName("Message")
        val message: String?,
        
        @SerializedName("StatusCode")
        val statusCode: Int?
    )
    data class MilkRate(
        @SerializedName("ItemId")
        val itemId: Int?,
        
        @SerializedName("MilkRate")
        val milkRate: String?
    )
    data class Data(
        @SerializedName("DashboardData")
        val dashboardData: List<DashboardData>?,
        
        @SerializedName("MilkRate")
        val milkRate: List<MilkRate>?
    )
    
    data class DashboardData(
        @SerializedName("AmountE")
        val amountE: String?,
        
        @SerializedName("AmountM")
        val amountM: String?,
        
        @SerializedName("HasELitre")
        val hasELitre: Boolean?,
        
        @SerializedName("HasMLitre")
        val hasMLitre: Boolean?,
        
        @SerializedName("ItemId")
        val itemId: Int?,
        
        @SerializedName("LitreE")
        val litreE: String?,
        
        @SerializedName("LitreM")
        val litreM: String?,
        
        @SerializedName("TransactionDate")
        val transactionDate: String?
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 2020-04-10
      • 2021-09-03
      • 1970-01-01
      • 2021-03-24
      • 2015-10-04
      相关资源
      最近更新 更多