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

android Refitfit无法解析数据,将数据变为空

东方弘壮
2023-03-14
{
  "loginj": [
    {
      "JUser_Id": "20",
      "JFullName": "aaa",
      "JEmail": "abc@gmail.com"
    }
  ]
}
 public static APIInterface getInterfaceService() {

    Gson gson = new GsonBuilder()
            .setLenient()
            .create();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();

    final APIInterface mInterfaceService = retrofit.create(APIInterface.class);
    return mInterfaceService;
}
public class Loginj {
   private String JUser_Id;
   private String JFullName;
   private String JEmail;
}

回调类APIInterface

Call<Loginj> login(@Body User user);

得到回应

Call<Loginj> loginResponseCall = apiInterface.login(user);
loginResponseCall.enqueue(new Callback<Loginj> () {
      @Override
      public void onResponse(Call<Loginj>  call, Response<Loginj>   response) {
            if (response.isSuccessful()) {
                   Loginj bodywValue = response.body();
                   Toast.makeText(getApplicationContext(),""+bodywValue.getJFullName(),
                                              Toast.LENGTH_SHORT).show();
             }
      }

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

共有1个答案

雷逸仙
2023-03-14

备选办法1:

这里您的响应在数组中,您需要像这样更改

{
  "JUser_Id":"20",
 "JFullName":"aaa",
 "JEmail":"abc@gmail.com"
}

备选案文2:

public class RestResponse {
 public List<Loginj> loginj;
}
Call<RestResponse> loginResponseCall = apiInterface.login(user);
            loginResponseCall.enqueue(new Callback<RestResponse> () {
                @Override
                public void onResponse(Call<RestResponse>  call, Response<RestResponse>   response) {
                    if (response.isSuccessful()) {
                        RestResponse body = response.body();
                        Loginj bodywValue = body.loginj.get(0);
                        Toast.makeText(getApplicationContext(),""+bodywValue.getJFullName(),Toast.LENGTH_SHORT).show();
                    }}

                    @Override
                    public void onFailure
                    (Call<RestResponse>  call, Throwable t){

                    }
 类似资料:
  • 类: JSON数据: {“列表”:[{“类型”:0,“文本”:“文本1”},{“类型”:1,“问题”:“文本2”}]} 类来保存列表项: 一切顺利,我为JSON字符串中的type和text获得了正确的值。但逮捕仍为空。

  • 问题内容: 我有以上述格式给出的.Data文件。我正在用Java编写程序,该程序将从.data文件中获取值并将其放入缓冲区中。我的Java程序通过JDBC连接到Mysql(windows)。所以我需要从上述格式的文件中读取值,并将其放入缓冲区 这样,我将存储这些值,并且jdbc将填充Mysql(windows)上的数据库表。请告诉我最好的方法。 问题答案: 查看此问题的答案,以读取文件行并将其拆分

  • 我正在尝试将上面的JSON解析为数据结构。我最初使用Gson,但大多数解决方案建议创建一个反映我的Gson结构的类结构并使用fromJson(String, Class),但我不想这样做,因为JSON的结构可能会改变,我不想每次都格式化我的类。

  • 我有通过jndi名称从WebLogic获取数据源的应用程序。 我在应用程序中配置了jndi数据源名称。yml: 我在WebLogic服务器上配置了它,指定了特定的目标。我测试了这个数据源,WebLogic说测试成功了。但是当我尝试部署应用程序时,我收到以下错误: 我需要确定WebLogic的数据源配置中存在问题,或者在java代码中获取数据源时存在问题。我是否能够在不部署应用程序的情况下测试获取数

  • 无法解析以下json数据。获得成功响应但返回的正文为空以下是我通过Web浏览器获得的json响应。 下面是用于解析所用响应类的模型类 Departure.java 调用api 我从浏览器中得到了正确的响应。但当通过改装库调用时,获得成功响应(200),但正文为空。 我从浏览器中得到了正确的响应。但当通过改装库调用时,获得成功响应(200),但正文为空。

  • 问题内容: 我在文件中有此JSON: 我编写了以下脚本来打印所有JSON数据: 但是,该程序会引发异常: 如何解析JSON并提取其值? 问题答案: 您的数据不是有效的JSON格式。您有什么时候应该拥有: 用于JSON数组,在Python 中称为 用于JSON对象(在Python 中称为JSON对象) JSON文件的外观如下: 然后,您可以使用您的代码: 有了数据,您现在还可以找到类似的值: 试试看