2015-09-13 75 views
-4

JSON數據我有這樣的JSON響應:如何到達括號內

google.friendconnect.container["renderOpenSocialGadget"](
{ 

    height: 200, 
    url: "http://username.github.io/", 

    "view-params": {"style":"light","url":"https://www.facebook.com/username","height":"258"}, 

    "prefs": {"style":"light","url":"https://www.facebook.com/username","height":"258"} 

    }, skin); 

我想達到的值,如高度,網址,查看-PARAMS,但不能。 我嘗試這樣做,但它並沒有奏效:

console.log(google.friendconnect.container["renderOpenSocialGadget"].url); 
+1

這不是JSON ... –

+0

@JeffMercado不管它是JSON與否,我怎樣才能得到括號內的值? –

+0

@maskedmagician最好的解決方案可能是從服務器請求JSON。那可能嗎? –

回答

1

表達google.friendconnect.container["renderOpenSocialGadget"](相當於google.friendconnect.container.renderOpenSocialGadget(

鑑於此,我們看到,這是一個對象的方法,得到一個JSON對象和一個額外的參數(skin)作爲參數。

由於該對象以某種方式直接解析到函數調用中,所以一旦該函數使用該函數,就不能再訪問該對象。

檢查,如果google.friendconnect.container有吸氣劑方法(他們通常有...)通過console.log(google.friendconnect.container)

編輯

只是一個想法:你可能趕上通話並且將它傳遞:

google.friendconnect.container["MyrenderOpenSocialGadget"] = 
     google.friendconnect.container["renderOpenSocialGadget"]; 

google.friendconnect.container["renderOpenSocialGadget"] = function(obj, skin) { 

    // do what you want with obj 
    console.log(obj.url); 

    //call original 
    google.friendconnect.container["MyrenderOpenSocialGadget"](obj, skin); 

}); 
+0

這是整個響應的樣子:http://jsfiddle.net/8d23h6ob/ –

+0

@maskedmagician有點複雜,但沒有任何區別。 –

相關問題