我想把不同的json结构转换成扁平的结构,以便在html上方便的显示。所以我有n个嵌套的数据,有时我有键和值,有时只有值。有什么简单的方法可以做到吗?
这是我所拥有的json的一些例子:
{
"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, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
这是我想要的东西
"glossary": {
"title": "example glossary",
"GlossDivTitle": "S",
"GlossDivGlossListGlossEntryID": "SGML",
"GlossDivGlossListGlossEntrySortAs": "SGML",
"GlossDivGlossListGlossEntryGlossTerm": "Standard Generalized Markup Language",
"GlossDivGlossListGlossEntryAcronym": "SGML",
"GlossDivGlossListGlossEntryAbbrev": "ISO 8879:1986",
"GlossDivGlossListGlossEntryGlossDefPara": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossDivGlossListGlossEntryGlossDefGlossSeeAlso": "GML, XML",
"GlossDivGlossListGlossEntryGlossSee": "markup",
}
我用的是 Sencha js,我的想法是在html中呈现任何类型的json,类似这样的东西。
tpl: new Ext.XTemplate(
'<table border="1" cellpadding="10" cellspacing="0">',
'<tpl foreach=".">',
'<tr>',
'<td>{$}</td>',
'<td>{.}</td>',
'</tr>',
'</tpl>',
'</table>'
, {
complied: true
}
)
2条答案
按热度按时间a14dhokn1#
递归是一种解决方案:
更新日期:
z18hc3ub2#
如果你想平面化的对象,你将需要做递归循环
下面是一个简单的例子,只是为了给予它如何工作的想法,它不使用递归。