在javascript中解析JSON对象并查找深度

parsing JSON object in javascript and finding the depth

本文关键字:对象 查找 深度 JSON javascript      更新时间:2023-09-26

我试图找到一个节点的深度,我无法理解下面的代码。"node"是作为输入传递的节点对象。

 for (key in node) 
    {
        if (node.hasOwnProperty(key)) 
        {
            child = node[key];
            if (typeof child === 'object' && child !== null && key != 'parent') 
            {

这是我目前所理解的:

  • 传递的每个节点-我们遍历其属性
  • 对于每个属性,该属性的值成为子
  • ,如果子类型是一个对象,如果子类型不等于null,并且属性不等于传递的父"节点"。(这部分我不懂)

我的解释正确吗?非常感谢任何帮助。谢谢!

'parent'似乎是一个正常的字符串,它不是javascript中的保留字或JSON标准的内置属性,并且从我可以告诉你没有传递父节点。如果它是对父节点的引用(在node['parent']中),我不确定它将服务于什么功能(如果此解析器正在遍历树)。

你有更多的代码可以分享吗?解析JSON的示例将是有用的。我本想把这篇文章放到评论里,但是我没有足够的声望,抱歉。

以以下json为例:

node = {'one': {'two': 3}, 'two':null, 'parent':4};

现在你的代码:

for (key in node) 
{
    if (node.hasOwnProperty(key)) 
    {
        child = node[key];
        if (typeof child === 'object' && child !== null && key != 'parent') 
        {

如果你只有child = {'two': 3}node对象中的其余项不遵守if语句。

基本上你遍历node项,找到子对象,不包含null值,其对应的键与parent不同