试图获取其集合数组包含 'random' 的对象的名称
Trying to get the name of the object whose collection array contains 'random'
我正在尝试获取其集合数组包含单词 'random' 的对象的名称。已尝试各种 json 路径查询,但找不到正确的路径查询。
{
"elements": [
{
"name": "My first element",
"language": "French",
"tags": ["Paris", "baguette", "Eiffel tower"]
},
{
"name": "randomOne",
"language": "Gibberish",
"tags": ["random", "plant, bag"]
},
{
"name": "bliep",
"language": "English",
"tags": ["lamp", "table, bed, oven"]
}
]}
您可以简单地:
- 用
Array.prototype.forEach()
遍历 elements
- 查找包含 "random" 且
Array.prototype.includes()
的实例
- 使用
Array.prototype.push()
将找到的名称添加到结果数组
见下文:
const jsondata = {
elements: [{
name: "My first element",
language: "French",
tags: ["Paris", "baguette", "Eiffel tower"]
},
{
name: "randomOne",
language: "Gibberish",
tags: ["random", "plant, bag"]
},
{
name: "bliep",
language: "English",
tags: ["lamp", "table, bed, oven"]
}
]
};
const result = [];
jsondata.elements.forEach(elem => {
if (elem.tags.includes("random")) {
result.push(elem.name);
}
});
console.log(result); // [ 'randomOne' ]
试试这个:
const jsonObj = {
"elements": [{
"name": "My first element",
"language": "French",
"tags": ["Paris", "baguette", "Eiffel tower"]
},
{
"name": "randomOne",
"language": "Gibberish",
"tags": ["random", "plant, bag"]
},
{
"name": "bliep",
"language": "English",
"tags": ["lamp", "table, bed, oven"]
}
]
};
let obj = jsonObj.elements.find((obj) => obj.tags.includes('random'));
console.log(obj.name); // randomOne
我已经试过这个问题并且能够得到在集合数组中具有 'random' 的名字。
$.elements[?(@.tags.indexOf('random') != -1)].name
如果符合您的目的,请更新。
我正在尝试获取其集合数组包含单词 'random' 的对象的名称。已尝试各种 json 路径查询,但找不到正确的路径查询。
{
"elements": [
{
"name": "My first element",
"language": "French",
"tags": ["Paris", "baguette", "Eiffel tower"]
},
{
"name": "randomOne",
"language": "Gibberish",
"tags": ["random", "plant, bag"]
},
{
"name": "bliep",
"language": "English",
"tags": ["lamp", "table, bed, oven"]
}
]}
您可以简单地:
- 用
Array.prototype.forEach()
遍历 - 查找包含 "random" 且
Array.prototype.includes()
的实例
- 使用
Array.prototype.push()
将找到的名称添加到结果数组
elements
见下文:
const jsondata = {
elements: [{
name: "My first element",
language: "French",
tags: ["Paris", "baguette", "Eiffel tower"]
},
{
name: "randomOne",
language: "Gibberish",
tags: ["random", "plant, bag"]
},
{
name: "bliep",
language: "English",
tags: ["lamp", "table, bed, oven"]
}
]
};
const result = [];
jsondata.elements.forEach(elem => {
if (elem.tags.includes("random")) {
result.push(elem.name);
}
});
console.log(result); // [ 'randomOne' ]
试试这个:
const jsonObj = {
"elements": [{
"name": "My first element",
"language": "French",
"tags": ["Paris", "baguette", "Eiffel tower"]
},
{
"name": "randomOne",
"language": "Gibberish",
"tags": ["random", "plant, bag"]
},
{
"name": "bliep",
"language": "English",
"tags": ["lamp", "table, bed, oven"]
}
]
};
let obj = jsonObj.elements.find((obj) => obj.tags.includes('random'));
console.log(obj.name); // randomOne
我已经试过这个问题并且能够得到在集合数组中具有 'random' 的名字。
$.elements[?(@.tags.indexOf('random') != -1)].name
如果符合您的目的,请更新。