是否可以迭代JSON以查找属性是否存在?

时间:2012-02-20 22:46:25

标签: javascript json google-api google-maps-api-2

我正在尝试使用Google API地理位置进行实验。

并且我注意到JSON并不总是相同的:有时地址是属性的子节点,有时它不是。

例如,如果我想提取例如PostalCode的值,它有时是:

...SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber

有时是:

...AdministrativeArea.DependentLocality.Locality.PostalCode.PostalCodeNumber

无法知道值的确切路径。如何独立于其父母找到 PostalCodeNumber 的值?

2 个答案:

答案 0 :(得分:1)

在此处尝试使用inJSON插件:http://danconnor.com/search-for-a-key-in-json-with-jquery- $。injson.html

注意:我以为我在这里看到了jQuery标记。你删除了它还是我看到了什么?无论如何,将它转换为非jQuery很容易。这是一个简单的递归函数。

答案 1 :(得分:0)

将此信息放在JSFiddle上,供您尝试

function GetPropIn( obj, prop )
{
    for( sProperty in obj )
    {
        if( obj.hasOwnProperty( sProperty ) )
        {
            if( sProperty == prop )
            {
                return( obj[sProperty] );
            }
            else
            {
                if( typeof(obj[sProperty]) == "object" )
                {
                    var res = GetPropIn( obj[sProperty], prop );
                    if( res )
                    {
                        return( res );
                    }
                }
            }
        }
    }    
}