提问人:blekione 提问时间:2/10/2018 最后编辑:blekione 更新时间:2/8/2022 访问量:2902
从 JSON 获取元素集合
Get collection of elements from JSON
问:
我有一个JSON文件,其结构如下:
{"root" : {
"parent" : {
"childA" :
["element1",
"element2"],
"childB" :
["element1",
"element2"]
}
}
我怎样才能从中获得一系列孩子?[childA, childB]
现在我正在做什么:
将 JSON 文件解析为对象(我知道该怎么做,建议的响应是关于这个的)。
创建集合:
var collection = [JSON.root.parent.childA, JSON.root.parent.childB]; collection.forEach(function(child) { print(child[0]) });
打印 ."element1"
我是 JavaScript 的新手,但我相信有一种更好、更通用的方法来实现第 2 点。
编辑: 我忘了补充一点,这个 Java 脚本是在 Nashorn jjs 脚本中使用的。
答:
1赞
Ankit Agarwal
2/10/2018
#1
只需用于此:Object.keys()
var data = {"root" : {
"parent" : {
"childA" :
["element1",
"element2"],
"childB" :
["element1",
"element2"]
}
}
};
var collection = [];
for (var childIndex in data.root.parent){
data.root.parent[childIndex].every(child => collection.push(child));
};
console.log(collection);
评论
0赞
blekione
2/10/2018
这仅返回键,因此我没有输出console.log(child[0]
childA
element1
0赞
blekione
2/10/2018
这对我有用......有点。我喜欢@Musa回答更多,但它在 jjs 脚本中不起作用。
0赞
Don't Panic
4/13/2022
"只需使用 Object.keys() 即可“ ... ?
1赞
Musa
2/10/2018
#2
可用于获取父对象中的条目。Object.values
var data = {"root" : {
"parent" : {
"childA" :
["element1",
"element2"],
"childB" :
["element1",
"element2"]
}
}
};
var collection = [];
for (var o in data.root.parent){
collection.push(data.root.parent[o]);
}
collection.forEach(function(child) {
console.log(child[0]);
});
评论
0赞
blekione
2/10/2018
我忘了补充一点,这段代码是作为 jjs Nashorn 脚本运行的,由于某些原因它不能识别为有效函数,但您的代码实际上是我想要实现的。Object.values
0赞
Himalaya Garg
2/8/2022
#3
您也可以尝试使用 JToken -
using Newtonsoft.Json.Linq;
JToken.Parse(response.Content)
.SelectTokens("root.parent");
评论
Object.keys(JSON.root.parent)
.window.JSON
var collection = Object.values(JSON.root.parent)