【发布时间】:2019-06-20 08:08:56
【问题描述】:
我正在使用Retrofit 收集和解析我创建并上传到互联网的JSON 数据。我可以成功显示所有数据,但作为 Retrofit 的新手,我很难理解如何从 JSON 数据中查询和显示某些项目。
我设法使用interface 显示所有JSON 数据:
@GET("d6jww")
Call<List<RetrofitVariables>> findPosts();
在Retrofit 的onResponse() 方法中。但是,如果我只想显示 JSON 对象的名称或 id 怎么办。我该如何查询?
我试过了:
@GET("d6jww")
Call<List<RetrofitVariables>> getId(
@Query( "id" )
String id);
和:
@GET("d6jww")
Call<List<RetrofitVariables>> getId(
@Query("SELECT * FROM id")
String id);
但在我的ViewModel Android-Studio 中要我在使用interface 时添加一个参数,而我真的不知道如何使用它:
public Call<List<RetrofitVariables>> getRepositoryId() {
return this.repository.getRetrofitRepository().getId( ??? );
}
我的JSON 看起来像这样:
[
{"id":231, "name": "Bob", "date":"3/13/2015",
"from":"8:00","until":"13:00"},
{"id":232, "name": "Joe", "date":"1/3/2015",
"from":"12.30","until":"13:00"}
]
总结一下我的问题:
我可以直接查询
JSON,还是我需要先将其放入Room,然后从那里查询?如果我可以直接查询
JSON,我如何构造接口(收集名称或id)?缺少的参数是怎么回事?如何查询特定名称?例如,如果我想查询 Bob 是否在 JSON 数据中,我该如何设置该接口?
提前谢谢你:)
【问题讨论】:
-
首先你不能在
@DaoAFAIK之外使用@Query,其次你不能查询JSON。我建议对数据进行建模,然后将其存储在 Room 中。查看此代码实验室codelabs.developers.google.com/codelabs/… -
啊,我也很怀疑。那么,没有(好的)方法可以直接从 JSON 数据中获取某些部分吗?谢谢@christoandrew
-
搜索
JSON并非完全不可能,但如果您愿意,可以查看github.com/google/gson
标签: java json android-studio retrofit2