【发布时间】:2018-02-12 10:07:39
【问题描述】:
我需要一个 javascript 中的递归函数,它可以返回我在 MarkLogic 中的 json 文档存储的所有字段名(键名)。 JSON 文档是非常动态的并且有多个层次元素。所以需要一个可以遍历JSON并获取所有字段名(Keys Name)的函数。
我认为的一个选项是将整个文档放入 MaP 对象并运行 Map 函数以获取所有键。但不确定 MarkLogic 是否允许将整个 json 文档捕获到 Map 中并且可以读取字段名称。
提前致谢
获得了遍历 JSON 文档以提取 Key Name 的函数
JSON 示例
var object = {
aProperty: {
aSetting1: 1,
aSetting2: 2,
aSetting3: 3,
aSetting4: 4,
aSetting5: 5
},
bProperty: {
bSetting1: {
bPropertySubSetting : true
},
bSetting2: "bString"
},
cProperty: {
cSetting: "cString"
}
}
StackOverflow 上提供的解决方案
Recursively looping through an object to build a property list
*
function iterate(obj, stack) {
for (var property in obj) {
if (obj.hasOwnProperty(property)) {
if (typeof obj[property] == "object") {
iterate(obj[property], stack + '.' + property);
} else {
console.log(property + " " + obj[property]);
$('#output').append($("<div/>").text(stack + '.' + property))
}
}
}
}
iterate(object, '')*
【问题讨论】:
-
您尝试使用哪些方法来完成这项工作,您是否遇到任何错误。先尝试实现,如果哪里卡住了,再来这里问
-
如果你能详细说明你为什么需要它,它也会有所帮助。有多种方法,但知道您要达到的目标可能会有所帮助..
标签: javascript marklogic