是否可以通过JSON进行迭代来查找属性是否存在

Is it possible to iterate through a JSON to find if a property exists?

本文关键字:是否 查找 属性 存在 可以通过 JSON 迭代      更新时间:2023-09-26

我正在尝试用谷歌API地理定位做一个实验。

我注意到JSON并不总是一样的:有时地址是属性的子级,有时不是。

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

...SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber

有时是:

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

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

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

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

把这个放在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 );
                    }
                }
            }
        }
    }    
}