【问题标题】:How to convert retrofit response body into JsonObject如何将改造响应体转换为 JsonObject
【发布时间】:2016-09-28 05:38:22
【问题描述】:
public abstract class RetrofitBaseCallBack<T> implements Callback<T> {
    @Override
    public void onResponse(Call<T> call, Response<T> response) {
        int responseCode = response.code();
        if (responseCode == Constants.ServerResponse.Code.STATUS_OK
                || responseCode == Constants.ServerResponse.Code.STATUS_CREATED_SUCCESS
                || responseCode == Constants.ServerResponse.Code.STATUS_IN_PROGRESS
                || responseCode == Constants.ServerResponse.Code.STATUS_NO_CONTENT
                || responseCode == Constants.ServerResponse.Code.STATUS_ACCEPTED) {
            // i want to navigate to onResponseSuccess when "success":true
            onResponseSuccess(call, response);
        } else {
           //i want to navigate to onResponseFailure when "success":false
            onErrorResponse(call, response);
        }
    }
    }

    @Override
    public void onFailure(Call<T> call, Throwable t) {
        onRetrofitBaseCallBackFailure(call, t);
    }

    public abstract void onResponseSuccess(Call<T> call, Response<T> response);

    public abstract void onResponseFailure(Call<T> call, Response response, String message);

    public abstract void onRetrofitBaseCallBackFailure(Call<T> call, Throwable t);
}

我通过扩展改造回调来上课。我想将响应解析为字符串。在我的例子中,每个响应都会获得这种类型的 JSON 对象。在成功响应的情况下:

{
  "success": true,
  "abc": {
    "a": 0.15,
    "b": "Better Exchange Rate",
  }
}

如果失败响应

{
      "success": false,
      "abc": {
        "a": 0.15,
        "b": "Better Exchange Rate",
      }
    }

如何将响应正文转换为 JsonObject 以便我可以检查字段 "success": 并导航相应的方法,即 onResponseSuccess(Call call, Response response) 以防万一成功时,onResponseFailure(Call call, Response response, String message) 失败时

【问题讨论】:

    标签: android gson retrofit2


    【解决方案1】:

    如何在改造中从 response.body() 获取 JSONObject:

    try {
    
        JSONObject jsonObj = new JSONObject(response.body().toString());
    
    } catch (JSONException e) {
    
        e.printStackTrace();
        Log.d("TAG", "No valid json");
    
    }
    

    【讨论】:

      猜你喜欢
      • 2014-12-08
      • 2020-03-20
      • 1970-01-01
      • 2015-12-08
      • 2014-01-03
      • 2020-01-22
      • 2021-03-09
      • 1970-01-01
      • 2021-07-11
      相关资源
      最近更新 更多