【发布时间】:2022-08-20 21:52:00
【问题描述】:
我的 API 有以下响应:
[
{
\"country\":\"INDIA\",
\"region\": \"Asia\",
\"doorNo\": \"12\",
\"pinCode\": \"345\"
},
{
\"country\":\"Angolia\",
\"region\": \"Asia\",
\"doorNo\": \"13\",
\"pinCode\": \"789\"
},
{
\"country\":\"Nigeria\",
\"region\": \"Australia\",
\"doorNo\": \"15\",
\"pinCode\": \"947\"
}
]
我必须按国家和地区动态搜索此响应。
例如,当我搜索 [country: INDIA, region: Asia] 时,我希望得到以下结果:
{
\"country\":\"INDIA\",
\"region\": \"Asia\",
\"doorNo\": \"12\",
\"pinCode\": \"345\"
}
但是,我得到以下结果(\'或者\' 条件而不是 \'和\'):
{
\"country\":\"INDIA\",
\"region\": \"Asia\",
\"doorNo\": \"12\",
\"pinCode\": \"345\"
},
{
\"country\":\"Angolia\",
\"region\": \"Asia\",
\"doorNo\": \"13\",
\"pinCode\": \"789\"
},
有什么方法可以通过流来实现这一点。
我尝试过以下方法:
response=response.stream().filter(x-> x.getCountry().equals(country) ||
x.getRegion().equls(region) || x.getDoorNo().equals(doorNo) ||
x.getPinCode().equals(pinCode));
当搜索输入为[countryName=India, region=Asia] 时,我得到以下结果:
{ \"country\":\"INDIA\", \"region\": \"Asia\", \"doorNo\": \"12\", \"pinCode\": \"345\" },
{ \"country\":\"Angolia\", \"region\": \"Asia\", \"doorNo\": \"13\", \"pinCode\": \"789\" }
但是,我期望的结果是:
{ \"country\":\"INDIA\", \"region\": \"Asia\", \"doorNo\": \"12\", \"pinCode\": \"345\" }
-
有没有办法让给定的任何输入的响应完全匹配。而不是具有 or 条件
-
I am having the below as result- 您发布的代码无法产生任何结果,因为它无法编译。分享您正在运行的实际代码,请参阅stackoverflow.com/help/minimal-reproducible-example。 -
你能建议我一种通过流获得预期结果的方法吗
-
等等,从你发布的 sn-p 中甚至不清楚
response应该是什么。在分配的右侧,您有一个Stream,因为stream().filter()产生一个流。请分享我们可以复制到 ide 并运行的代码。 -
还提供一个虚拟
class,它反映流中对象的形状。
标签: java-8 java-stream