当前位置: 首页 > 知识库问答 >
问题:

错误:应为BEGIN_ARRAY,但BEGIN_OBJECT位于第1行第2列路径$

林修真
2023-03-14
    {
       "pratos":[
          {
             "IDITENS_VENDA":539,
             "DESCRICAO_PRODUTO":"X BAICON",
             "ITENS_VENDA_QUANTIDADE":1,
             "PRECOVENDA_PRODUTO":14.5,
             "VENDAS_VALOR_VENDA":97
          },
          {
             "IDITENS_VENDA":540,
             "DESCRICAO_PRODUTO":"ESPETINHO",
             "ITENS_VENDA_QUANTIDADE":1,
             "PRECOVENDA_PRODUTO":55,
             "VENDAS_VALOR_VENDA":97
          }
       ]
    }
@GET("itens_mesa")
    fun ListItensMesa(@Query("idmesas")idmesas : String?):Observable<List<Itens_Mesa>>
class Itens_Mesa(
    @SerializedName("DESCRICAO_PRODUTO")
    val DESCRICAO_PRODUTO : String,
    @SerializedName("ITENS_VENDA_QUANTIDADE")
    val ITENS_VENDA_QUANTIDADE : String,
    @SerializedName("PRECOVENDA_PRODUTO")
    val PRECOVENDA_PRODUTO : Double,
    @SerializedName("COMPLEMENTO_DESCRICAO")
    val COMPLEMENTO_DESCRICAO : String,
    @SerializedName("COMPLEMENTO_VALOR")
    val COMPLEMENTO_VALOR : Double,
    @SerializedName("IDITENS_VENDA")
    val IDITENS_VENDA : String,
    @SerializedName("VENDAS_VALOR_VENDA")
    val VENDAS_VALOR_VENDA : Double,
    @SerializedName("Resposta")
    val Resposta : String
)

function Lista_Itens(){
        disposable =  client.ListItensMesa(idmesas)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                { result -> Log.e(" Result " , result[0].DESCRICAO_PRODUTO) },
                { error -> println(" Erro não esperado! " + error.printStackTrace()) }
            )
}

我做错了什么?

当我这样读json时,它工作得很好

[
    {
        "IDITENS_VENDA": 539,
        "DESCRICAO_PRODUTO": "X BAICON",
        "ITENS_VENDA_QUANTIDADE": 1,
        "PRECOVENDA_PRODUTO": 14.5,
        "VENDAS_VALOR_VENDA": 97
    },
    {
        "IDITENS_VENDA": 540,
        "DESCRICAO_PRODUTO": "ESPETINHO",
        "ITENS_VENDA_QUANTIDADE": 1,
        "PRECOVENDA_PRODUTO": 55,
        "VENDAS_VALOR_VENDA": 97
    }
]

共有1个答案

翟永春
2023-03-14

您需要一个“itens_mesa”对象列表,但在JSON中,对象列表是另一个对象的属性。如果可以更改API调用,那么就像在这里所做的那样更改响应。

[
    {
        "IDITENS_VENDA": 539,
        "DESCRICAO_PRODUTO": "X BAICON",
        "ITENS_VENDA_QUANTIDADE": 1,
        "PRECOVENDA_PRODUTO": 14.5,
        "VENDAS_VALOR_VENDA": 97
    },
    {
        "IDITENS_VENDA": 540,
        "DESCRICAO_PRODUTO": "ESPETINHO",
        "ITENS_VENDA_QUANTIDADE": 1,
        "PRECOVENDA_PRODUTO": 55,
        "VENDAS_VALOR_VENDA": 97
    }
]

如果不能更改API调用,则定义另一个类,如下所示,

class Itens_Mesa_List_Object(
    @SerializedName("pratos")
    val INTENSE_MESA_LIST : List<Itens_Mesa>
)

按以下方式更改呼叫,

**Api**
@GET("itens_mesa")
fun ListItensMesa(@Query("idmesas")idmesas: String?):Observable<Itens_Mesa_List_Object>
{ 
    result -> Log.e(" Result " , result.INTENSE_MESA_LIST[0].DESCRICAO_PRODUTO )
}
 类似资料: