这是我的汽车“模型”的JSON结果:
[
{
"idModele":1,
"modele":"M3",
"marque":{
"idMarque":1,
"marque":"BMW"
}
},
{
"idModele":2,
"modele":"RS6",
"marque":{
"idMarque":2,
"marque":"Audi"
}
},
{
"idModele":3,
"modele":"C63 AMG",
"marque":{
"idMarque":3,
"marque":"Mercedes"
}
},
{
"idModele":4,
"modele":"Clio RS Trophy",
"marque":{
"idMarque":4,
"marque":"Renault"
}
},
{
"idModele":5,
"modele":"Scirocco Type R",
"marque":{
"idMarque":5,
"marque":"Volkswagen"
}
},
{
"idModele":6,
"modele":"118d",
"marque":{
"idMarque":1,
"marque":"BMW"
}
}
]
我只想获取具有“ idMarque:1”(BMW)的“模型”(结果是它们具有2个“模型”),但我不知道该怎么做。
我的后端:带有SpringBoot的API REST 我的前端:角度
答案 0 :(得分:0)
假设json数组存储在变量result
中,您可以简单地:
检查每个json对象是否符合所需条件。
for (let i = 0; i < result.length; i++) {
if (result[i].marque.idMarque === 1) {
console.log('Found it ', result[i]);
}
}
更简单:
result.filter(e => e.marque.idMarque === 1);
答案 1 :(得分:0)
首先,为澄清起见,这是一个JavaScript问题。后端或前端是什么都没关系。
回答您的问题,您可以过滤结果以仅获取所需的元素:
filteredCars = cars.filter(car => car.marque.idMarque === 1)
这将用marque.idMarque = 1
过滤汽车。
您可以在docs上找到有关filter
功能的信息。
答案 2 :(得分:0)
您可以使用过滤器运算符获取具有idMarque:1的模型。例如,您在 result 类变量中获得JSON结果。然后,您可以按以下方式使用过滤器。
let BMWCars = this.result.filter(e => e.marque.idMarque == 1);
答案 3 :(得分:0)
如果您已搜索对象值,那么检查是个好主意,因此:
let filtered = models
.filter(item => item.marque && item.marque.idMarque
? item.marque.idMarque === 1
: '')
在这种情况下,如果未收到错误消息,则服务器响应中缺少Marque键。