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

如何在android中使用改型和GSON从api获得完整的JSON响应

颜文昌
2023-03-14
   ApiInterface apiService =
                ApiClient.getClient().create(ApiInterface.class);

        Call<ProductResponse> call = apiService.getProducts();
        call.enqueue(new Callback<ProductResponse>() {
            @Override
            public void onResponse(Call<ProductResponse> call, Response<ProductResponse> response) {
                List<Category> categories = response.body().getResults();
                Log.d("cat", "Number of categories received: " + categories.size());
            }

            @Override
            public void onFailure(Call<ProductResponse> call, Throwable t) {
                // Log error here since request failed
                Log.e("cat", t.toString());
            }
        });


public interface ApiInterface {

    @GET("/json")
    Call<ProductResponse> getProducts();

}


public class ApiClient {
    public static final String BASE_URL = "https://stark-spire-93433.herokuapp.com/";
    private static Retrofit retrofit = null;


    public static Retrofit getClient() {
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }
}

我的JSON:

{
  "categories": [
    {
      "id": 1,
      "name": " Casuals",
      "products": [
        {
          "id": 1,
          "name": "Nike Sneakers",
          "date_added": "2016-12-09T11:16:11.000Z",
          "variants": [
            {
              "id": 1,
              "color": "Blue",
              "size": 42,
              "price": 1000
            },
            {
              "id": 2,
              "color": "Red",
              "size": 42,
              "price": 1000
            },
            {
              "id": 3,
              "color": "Blue",
              "size": 44,
              "price": 1200
            },

上面的代码是什么我有treid,所以可以任何一个请帮助我获得整个响应不仅是父类别。

共有1个答案

顾宏朗
2023-03-14

我想你把所有的模型类都做得很好。然后替换

@GET("/json")
Call<ProductResponse> getProducts();

@GET("json")
Call<ProductResponse> getProducts();

如果它不起作用,那么就发表评论。我还将提供模型类。

 类似资料:
  • 如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下

  • 如何在androidretrofit2中获得完整的JSON响应。

  • 下面是我到目前为止的代码,我将Json放在一个字符串中: }

  • 在过去的几天里做了一些阅读后,我已经取得了一些进展,下面是我想出的代码: 主要活动: HTTPRequest 没有错误,一切运行正常,但问题是-我已经建立了这个代码作为一个测试,如果我可以登录我试图登录的网站,但我无法从中获得任何信息。在我按下按钮后,似乎发生了什么事情,我发送到用户界面线程的输入流给了我这个:“java.io.BufferedInputStream@afe19b8”,每次按下按钮

  • 我想获取用于登录自定义拦截器的HttpServletACK返回内容。开发环境是Spring Boot 1.5.6Java8 Embeded Tomcat 8.0.35,返回内容是RESTful接口json string。这是我获取超文本传输协议响应内容的代码: 当响应json较短时,代码运行良好。但当返回的json太长时,responseContent只包含部分响应内容,在登录之前解析内容失败(需