Java 如何从JSON API过滤数据

Java 如何从JSON API过滤数据,java,android,json,api,filtering,Java,Android,Json,Api,Filtering,我只想显示基于“主题名称”的“幸运7经典”数据。 这是我的通话功能 public MutableLiveData<List<PrizesModel>> getPrize(){ final MutableLiveData<List<PrizesModel>> pData = new MutableLiveData<>(); Call<List<PrizesModel>> call = rfit.re

我只想显示基于“主题名称”的“幸运7经典”数据。 这是我的通话功能

public MutableLiveData<List<PrizesModel>> getPrize(){
    final MutableLiveData<List<PrizesModel>> pData = new MutableLiveData<>();
    Call<List<PrizesModel>> call = rfit.retrofitBuilderPrize().getPrizes();
    call.enqueue(new Callback<List<PrizesModel>>() {
        @Override
        public void onResponse(Call<List<PrizesModel>> call, Response<List<PrizesModel>> response) {
            try {
                List<PrizesModel> pList = response.body();
                for (int i = 0; i < pList.size()-1; i++){
                    if (pList.get(i).getThemeName().equals("Lucky 7 Classic")){
                        pData.setValue(pList);
                    }
                }
            }catch (Exception e){

            }
        }

        @Override
        public void onFailure(Call<List<PrizesModel>> call, Throwable t) {
                pData.setValue(null);
        }
    });
    return pData;
}

它显示API中的所有数据,而不是您已经应用过滤器的所需值。有什么问题吗?什么不起作用?请注意,
catch(异常e){}
-空的catch块是一个大禁忌。您应该正确处理它,即如果没有其他内容,则至少记录它。@Thomas它仍然没有生效。。它仍然显示来自ApiAh的所有数据,我现在看到了:
pData.setValue(pList)-不要这样做。如果有匹配项,基本上就是返回整个列表。相反,您需要第二个只接收匹配元素的列表。您可以使用streams实现这一点,但我建议您首先尝试“传统”方式(创建一个空列表,添加匹配元素,然后在调用
pData.setValue(yourNewList)
的循环之后)。
{
    "id": 11,
    "theme_name": "Lucky 7 Classic",
    "choose": "SỐ 7",
    "first_coin": "1000",
    "second_coin": "2000",
    "third_coin": "5000",
    "theme_image": ""
},
{
    "id": 12,
    "theme_name": "Lucky 7 Classic",
    "choose": "SỐ 7 MAY MẮN",
    "first_coin": "250",
    "second_coin": "500",
    "third_coin": "750",
    "theme_image": ""
},
{
    "id": 20,
    "theme_name": "Lucky 7 Ocean",
    "choose": "Ba con cá bướm",
    "first_coin": "300",
    "second_coin": "600",
    "third_coin": "900",
    "theme_image": ""
},
{
    "id": 21,
    "theme_name": "Lucky 7 Ocean",
    "choose": "Ba con Cá hề",
    "first_coin": "250",
    "second_coin": "500",
    "third_coin": "750",
    "theme_image": ""
}