Можно ли перебрать JSON, чтобы найти, существует ли свойство? - PullRequest
1 голос
/ 21 февраля 2012

Я пытаюсь провести эксперимент с геолокацией API Google.

и я заметил, что JSON не всегда одинаков: иногда адрес является дочерним для свойства, иногда это не так.

Например, если я хочу извлечь, например, значение PostalCode, оно иногда:

...SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber

А иногда это:

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

Нет способа узнать точный путь к значению. Как мне найти значение PostalCodeNumber независимо от его родителей?

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Попробуйте плагин inJSON здесь: http://danconnor.com/search-for-a-key-in-json-with-jquery-$.injson.html

ПРИМЕЧАНИЕ.Вы удалили это или я вижу вещи?В любом случае, было бы легко преобразовать это в не jQuery.Это простая рекурсивная функция.

0 голосов
/ 21 февраля 2012

положите это на 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 );
                    }
                }
            }
        }
    }    
}
...