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

时间:2015-09-24 03:42:30

标签: javascript json node.js parsing web

我正在尝试查找节点的深度,但我无法理解下面的代码。 “node”是作为输入传递的节点对象。

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

这是我到目前为止所理解的:

  • 传递的每个节点 - 我们通过其属性
  • 对于每个属性,属性的值将成为子级
  • 如果子类型是一个对象,并且子级不等于null且该属性不等于传递的父“节点”。 (这部分我不明白)

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

2 个答案:

答案 0 :(得分:0)

'parent'似乎是一个普通的字符串,它不是JSON标准的javascript或内置属性中的保留字,而且我可以告诉你,它没有被传递给父母节点。如果它是对父节点的引用(在node['parent']中),我不确定它将提供什么功能(如果此解析器正在走树。

您可以分享更多代码吗?解析JSON的一个例子很有用。我会在评论中发帖,但我没有足够的声誉,抱歉。

答案 1 :(得分:0)

以这个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不同