java - android:如何使用Retrofit从以下json接收响应?

标签 java android retrofit2

我用过retrofit2。但我无法捕捉到响应,因为总是显示零数据。 我怎样才能收到回复?我正在使用这段代码。 (添加调试代码也是为了更好地理解)。

ApiClient.getApiClient().getPurchOrderEdit(map).enqueue(new Callback<Map<String, Map<String, List<Map<String, Object>>>>>() {
            @Override
            public void onResponse(Call<Map<String, Map<String, List<Map<String, Object>>>>> call, Response<Map<String, Map<String, List<Map<String, Object>>>>> response) {
                System.out.println("test");
            }

            @Override
            public void onFailure(Call<Map<String, Map<String, List<Map<String, Object>>>>> call, Throwable t) {

            }
        });

enter image description here

{
    "TBLT_PURCHASE_ORDER_EDIT": {
        "data": [
            {
                "column_id": "17705",
                "po_id": "15872311254332020-04-18 23:32:05",
                "db_id": "62",
                "dbhouse_name": "Coca Cola DB House",
                "depot_id": "3",
                "dpo_name": "Tongi Depot",
                "dist_emp_id": "140",
                "first_name": "Coca cola DB",
                "order_date": "2020-04-18",
                "total_order": "1056",
                "total_quantity": "24"
            }
        ]
    }
}

最佳答案

进行 API 调用以返回 ApiResult

您的ApiResult类:

public class ApiResult {

    private String status;
    private JsonElement result;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public JsonElement getResult() {
        return result;
    }

    public void setResult(JsonElement result) {
        this.result = result;
    }

}

在 Api onResponse 中使用此代码,并将 YourDataObject 替换为您的数据类:

 Type typeToken = new TypeToken<List<YourDataObject>>() {
                            }.getType();

 List<YourDataObject> list = new ArrayList<>();

list = new Gson().fromJson(response.body().getResult().getAsJsonObject()
                                                .getAsJsonArray("data"), typeToken);

关于java - android:如何使用Retrofit从以下json接收响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61850640/

相关文章:

java - 如何在不提交表单的情况下使用struts2提交标签作为按钮?

android - 如何在android studio中使用这个项目?

android - WebView 示例安卓

Android Room - 找不到符号 @androidx.room.TypeConverters(value = {StringDataConverter.class, ...})

java - 包含来自 ServiceHelper 的 Retrofit API 接口(interface)方法的映射

android - 改造2处理动态错误

java - 如何在android中retrofit2的响应模型类中提及 "Optional"和 "Required"字段

java - 如何更新然后选择更新的行

java - 如何使用 EditText 和 RadioButtons(以及颜色集)顺利存储用户输入数据?

java - 我的 java web start 应用程序仅在设置详细时启动