android - 如何使用 Retrofit 2 从查询中获取一个对象?
问题描述
我想从 JSONArray 中获取一个用户作为 JSONObject。他将电子邮件作为数据库中的唯一值。
如果我这样打电话:
@GET("users")
Call<List<User>> getUser(@Query("email") String email);
我必须以这种方式接收数据:
call.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(@NonNull Call<List<User>> call,
@NonNull Response<List<User>> response) {
List<User> users_list = response.body();
if (users_list != null) {
User user = users_list.get(0);
}
}
@Override
public void onFailure(@NonNull Call<List<User>> call, @NonNull Throwable t) {
}
});
因为我的调用返回一个只有一个元素的列表。有没有其他方法可以直接获取对象,而不是在列表中?
我得到的回应是:
[
{
"id": 17,
"email": "myemail@gmail.com",
...
}
]
我只想得到:
{
"id": 17,
"email": "myemail@gmail.com",
...
}
如果我更换
List<User> with User
在 GET 方法和调用中它不起作用。我正在寻找一些方法,如 C# 中 .NET Core 2 中的 FirstOrDefault() 或类似方法。谢谢!
解决方案
推荐阅读
- node.js - 为什么请求没有在节点 js 中被丢弃?
- r - 将值从多列传递到 dplyr 汇总函数
- ruby-on-rails - Rails/Devise - 防止垃圾邮件注册?
- linux - 日期:无效选项——“c”
- autoencoder - 是否可以将不同大小的数据组合成可用于自动编码器的输入?
- go - HTTP 请求:带有 graphQL 的 golang?
- whatsapp - 聊天记录经常被删除,几乎每周两次
- javascript - RangeError:超过了 docker 容器内用于 graphql 工具的最大调用堆栈大小
- java - 如何访问 WEB-INF/lib/jars?
- python - 更改 JointGrid 边际图的大小或将其删除