gpt4 book ai didi

javascript - 使用javascript从json对象获取 parent 姓名

转载 作者:行者123 更新时间:2023-11-27 23:01:17 25 4
gpt4 key购买 nike

我正在读取 JSON 对象并以表格格式名称和文本在 html 中显示它们,但无法使用 javascript 获取节点的父名称

{
"A": {
"B": "Text",
"C": "Text",
"D": {
"D1": "Text",
"D2": {
"D4": "Text",
"D3": "Text"
}
},
"E": {
"E1": {
"E2": {
"E3": "Text"
}
}
}
}
}

表格是这样的

B      Text   
C Text
D1 Text
D4 Text
D3 Text
E3 Text

但我需要像这样将 parent 姓名附加到 child

A_B   Text   
A_C Text
A_D_D1 Text
A_D_D2_D3 Text
A_D_D2_D4 Text
A_E_E1_E2_E3 Text

您能否建议我如何将父名称添加到子节点

<!DOCTYPE html>
<html>
<head>
<style>

</style>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>
</div>
<script type="text/javascript">
var html = '<table border="1">';

var contextObj={"A":{"B":"Text","C":"Text","D":{"D1":"Text","D2":{"D4":"Text","D3":"Text"}},"E":{"E1":{"E2":{"E3":"Text"}}}}};

html = getKeyValueJson(contextObj, html);
html +='</table>';
$('div').html(html);

function getKeyValueJson(obj, html) {

$.each(obj, function(key, value) {
value = parseIt(value) || value;

if (value == null) {
return
}

if (typeof value == 'object') {

html = getKeyValueJson(value, html);

} else {

html +='<tr>'
html += '<td>' + key + '</td> <td>' + value + '</td></tr>';

}
});
return html;
}

function parseIt(str) {
try { return JSON.parse(str); } catch(e) { return false; }
}
</script>
</body>
</html>

最佳答案

一个简单的递归函数将给定节点 n 减少为键列表

var x = {"A":... // from your example data
function gather(n, prefix, acc) {
if (typeof n !== "object") {
acc[prefix] = n;
return acc;
}
for ( k in n ) {
gather( n[k], (prefix ? [prefix, k].join("_") : k), acc );
}
return acc;
}
console.log( "OUTCOME=", gather(x, "", {});

显示:

acc= { A_B: 'Text',
A_C: 'Text',
A_D_D1: 'Text',
A_D_D2_D4: 'Text',
A_D_D2_D3: 'Text',
A_E_E1_E2_E3: 'Text' }

关于javascript - 使用javascript从json对象获取 parent 姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37081682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com