这是示例 json:
{
"search": {
"facets": {
"author": [
],
"language": [
{
"value": "nep",
"count": 3
},
{
"value": "urd",
"count": 1
}
],
"source": [
{
"value": "West Bengal State Council of Vocational Education & Training",
"count": 175
}
],
"type": [
{
"value": "text",
"count": 175
}
],
}
}
有多种方法可以删除关键字search.facets.source
:
删除 search.facets.source
删除 jsobObj['search']['facets']['source']
var jsonKey = '源'; JSON.parse(angular.toJson(jsonObj), 函数 (键, 值) { if (key != jsonKey) 返回值; });
以上1和2不是动态的,3是其中一种方式但不是正确的方式。因为如果源存在于另一个节点中,那么它将无法工作。请任何人都可以告诉我如何在任何类型的嵌套键中动态删除它。因为上面2中我们无法动态生成数组序列。
最佳答案
假设您从这里开始:
let path = 'search.facets.source';
那么逻辑很简单:找到search.facets
对象,然后删除它上面的obj['source']
。
第一步,将路径
分为初始路径和尾部属性名称:
let keys = path.split('.');
let prop = keys.pop();
在对象中查找facets
对象:
let parent = keys.reduce((obj, key) => obj[key], jsonObj);
删除属性:
delete parent[prop];
关于javascript - 如何动态删除嵌套的json键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38890239/