我编写了一个javascript函数来显示警报中JSON对象的所有内部数据元素。
这是我的代码
function allElements(moduleName) {
switch (moduleName) {
default :
return {
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language,such as DocBook",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
}
}
function getData(data) {
var table = ""
for (var i in data) {
if (i.constructor === "string".constructor) {
table += i + " -> " + data[i]
} else if (i.constructor === [].constructor) {
for (j in i) {
table += getData(i[j])
}
} else if (i.constructor === {}.constructor) {
for (j in i) {
table += getData(i[j])
}
}
}
return table
}
function fun() {
alert(getData(allElements("ignored argument")))
}
以上逻辑是here。但它只显示s1,s2,s3和“第二个对象”。整个对象仅被识别为一个对象。它没有进入那个内在的对象。有人能告诉我怎样才能完成这件事。
(编辑json对象)