2012-02-20 104 views
1

我正在嘗試使用google API地理位置進行實驗。是否可以遍歷JSON來查找屬性是否存在?

我注意到JSON並不總是一樣的:有時地址是一個屬性的孩子,有時不是。

例如,如果我想提取例如POSTALCODE的價值,它有時:

...SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber 

有時是:

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

沒有辦法知道確切的路徑OT價值。我怎樣才能找到PostalCodeNumber獨立於其父母的價值?

+0

我想說的最快捷的方式是使用正則表達式來獲得,其中包括POSTALCODENUMBER整個路徑,然後傳遞到EVAL。純粹主義者可能會討厭這個問題,但它應該有效,而且我認爲這不會導致世界結束 – 2012-02-20 22:51:32

+0

您是否使用v2 API?看看http://stackoverflow.com/a/3491048/171703 – akiller 2012-02-20 22:52:17

+0

聽起來不錯...如果我知道如何做到這一點... – Francesco 2012-02-20 22:52:44

回答

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); 
        } 
       } 
      } 
     } 
    }  
}