Javascript 从JSON获取元素集合
我有一个JSON文件,其结构如下:Javascript 从JSON获取元素集合,javascript,json,nashorn,jjs,Javascript,Json,Nashorn,Jjs,我有一个JSON文件,其结构如下: {"root" : { "parent" : { "childA" : ["element1", "element2"], "childB" : ["element1", "element2"] } } 我怎样才能从它那里得到一组孩子[childA,childB] 现在我要做的是:
{"root" : {
"parent" : {
"childA" :
["element1",
"element2"],
"childB" :
["element1",
"element2"]
}
}
我怎样才能从它那里得到一组孩子[childA,childB]
现在我要做的是:
var collection = [JSON.root.parent.childA, JSON.root.parent.childB];
collection.forEach(function(child) {
print(child[0])
});
“元素1”
我不熟悉JavaScript,但我相信有一种更好、更通用的方法来实现第2点
编辑:
我忘了补充一下,这个Java脚本是在Nashorn jjs脚本中使用的。只需使用
Object.keys()
即可:
var数据={“根”:{
“家长”:{
“childA”:
[“元素1”,
“元素2”],
“儿童B”:
[“元素1”,
“元素2”]
}
}
};
var集合=[];
for(data.root.parent中的var childIndex){
data.root.parent[childIndex].every(child=>collection.push(child));
};
控制台日志(收集)代码>只需使用Object.keys()
即可:
var数据={“根”:{
“家长”:{
“childA”:
[“元素1”,
“元素2”],
“儿童B”:
[“元素1”,
“元素2”]
}
}
};
var集合=[];
for(data.root.parent中的var childIndex){
data.root.parent[childIndex].every(child=>collection.push(child));
};
控制台日志(收集)
您可以使用Object.values
获取父对象中的条目
var数据={“根”:{
“家长”:{
“childA”:
[“元素1”,
“元素2”],
“儿童B”:
[“元素1”,
“元素2”]
}
}
};
var集合=[];
for(data.root.parent中的var o){
collection.push(data.root.parent[o]);
}
collection.forEach(函数(子级){
console.log(子[0]);
});
您可以使用Object.values
获取父对象中的条目
var数据={“根”:{
“家长”:{
“childA”:
[“元素1”,
“元素2”],
“儿童B”:
[“元素1”,
“元素2”]
}
}
};
var集合=[];
for(data.root.parent中的var o){
collection.push(data.root.parent[o]);
}
collection.forEach(函数(子级){
console.log(子[0]);
});
Object.keys(JSON.root.parent)的可能重复项
。不要将“JSON”用作变量名,您可能会覆盖或隐藏本机的窗口。JSON
对象。var collection=Object.values(JSON.root.parent)
@clinomaniac-建议的主题是关于解析JSON字符串的。我的问题不是解析JSON,而是如何从JSON对象中提取特定元素。object.keys(JSON.root.parent)
的可能重复项。不要将“JSON”用作变量名,您可能会覆盖或隐藏本机window.JSON
对象。var collection=object.values(JSON.root.parent)
@clinomaniac-建议的主题是关于解析JSON字符串。我的问题不是解析JSON,而是如何从JSON对象中提取特定元素。这只返回键,因此对于console.log(child[0]
我有输出childA
而不是element1
这对我来说很有用……有点。我更喜欢@Musa answer,但它在jjs脚本中不起作用。这只返回键,对于console.log(child[0]
我有输出childA
而不是element1
这对我来说很有效……有点。我更喜欢@Musa answer,但它在jjs脚本中不起作用。我忘了补充一点,这段代码是作为jjs Nashorn脚本运行的,出于某些原因,它无法识别对象。值
作为有效函数,但您的代码实际上是我不想实现。我忘了补充一点,这段代码是作为jjs Nashorn脚本运行的,出于某些原因,它无法将Object.values
识别为有效函数,但您的代码实际上就是我想要实现的。