如何使用翻新查询某些JSON项目?

时间:2019-01-26 21:44:24

标签: java json android-studio retrofit2

我正在使用Retrofit收集和解析我创建并上传到互联网的JSON数据。我可以成功显示所有数据,但对于翻新还是很陌生,我一直在努力了解如何从JSON数据中查询和显示某些项目。

我设法使用JSON显示所有interface数据:

@GET("d6jww")
Call<List<RetrofitVariables>> findPosts();

onResponse()的{​​{1}}方法中。但是,如果我只想显示Retrofit对象的名称或ID,该怎么办。我该如何查询?

我尝试过:

JSON

和:

@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

总结我的问题:

  1. 我可以直接查询[ {"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并从那里查询?

  2. 如果我可以直接查询Room,如何构造接口(以收集名称或ID)?缺少的参数又是什么?

  3. 如何查询特定名称?例如,如果我想查询Bob是否在JSON数据中,该如何设置该接口?

预先感谢一堆:)

1 个答案:

答案 0 :(得分:1)

这不完全是您想要做的,但是无论如何。

为此:

  
      
  1. 如果我可以直接查询JSON,如何构造接口(以收集名称或ID)?缺少的论点是什么?
  2.   

并评论:

  

那么,有没有(好的)方法直接从JSON数据中提取某些部分呢?

您不能影响服务返回的内容,但是可以选择您选择的内容。假设您通常具有这种DAO(完整的Post-或Person?数据):

public class Post {
    private String id;
    private String name;
    private String date;
    private String from;
    private String until;
}

通常情况下,您可能会遇到类似的东西(不是必需的,但作为示例):

@GET("d6jww")
Call<List<Post>> findPosts();

要将数据限制为仅某些字段,可以为其声明一个新的DAO。喜欢:

@Getter @Setter
public class PostId {
    private String id;
}

和指向相同端点的新API方法:

@GET("d6jww")
Call<List<PostId>> getPostIds();

但是无论如何,您都需要在客户端进行过滤。