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

如何将Rethfit响应体转换为JsonObject

闻人景澄
2023-03-14
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)

共有1个答案

弘浩博
2023-03-14

如何在改型中从response.body()获得JSONObject:

try {

    JSONObject jsonObj = new JSONObject(response.body().toString());

} catch (JSONException e) {

    e.printStackTrace();
    Log.d("TAG", "No valid json");

}
 类似资料:
  • 我可以使用现在已弃用的方法将WebClient响应转换为响应实体。 请建议实现相同结果的其他方法。下面是我的代码。

  • 我可以使用toEntity()方法返回ResponseEntity,如下所示: 但是我想在返回之前处理响应头。上面的代码将WebClient响应转换为响应实体并立即返回,但我想将其存储在响应实体变量中,处理它,然后返回响应实体。 我提到了这个- 当我试图将其存储在varibale中时,我遇到了这个错误-

  • 问题内容: 我无法将SOAP响应转换为php中的Array。 这是代码 这是SOAP响应。 我使用以下方法将其转换为数组,但输出为空。 请给我建议。 问题答案: 终于我找到了解决方案 我们可以通过以下方式从SOAP获得响应主体 范例1: 示例2:

  • 我有一个关于使用Square改造的Android开发的问题。假设我有一个Response对象,它实际上是一个

  • 使用此JSON,自动JSON到POJO严重失败。 请注意,不同请求的项目数量不同。在这里,我将包含两项JSON响应。 这个JSON对象的POJO会是什么样子?

  • 我需要将其转换为以下格式: 类型的数量可以改变(例如,可以只有A和B)。有人能帮我吗?我使用这个组件在网站https://js.devexpress.com/demos/widgetsgallery/demo/datagrid/simplearray/angular/light/上显示数据