2012-01-16 149 views
1

如何在Twitter中通過Json格式返回數組值。我已經知道如何處理來自yahoo和fb的json格式,但是,由twitter返回的json格式與回調函數不同。從Json格式獲取數組值Javascript

FB

my({ 
    "data": [{ 
      "name": "May Ann Salle", 
      "created_time": "2012-01-09T12:29:19+0000" 
      }] 
}); 

嘰嘰喳喳

my([ 
     { 
     "recipient_screen_name": "1stone" 
     }, 
     { 
     "recipient_screen_name": "2ndone" 
     } 
]); 



$.each(my, function(i, tw) { 
     disp += tw.recipient_screen_name; 
}); 

alert(disp); 

,但我只得到了第一個1,我無法得到數組的第2個之一。

+0

您在對象之間的第二個示例中缺少逗號。另外,什麼是「我的」? – Joe 2012-01-16 18:50:46

+0

@Joe忘記鍵入,但在實際輸出中有。我是回調函數。 – 2012-01-16 18:53:47

+0

你的代碼可以正常工作,你有什麼問題? http://jsfiddle.net/BnCVU/ – 2012-01-16 18:57:01

回答

2

你必須提到這是關於JSON-P不只是JSON。

無論如何,您可能需要對每個數據集進行不同的回調。

// your callback function 
function myTwitterCb(data) { 
    var disp = "" 
    var len = data.length 
    var tw = {} // placeholder object 
    for (var i = 0; i < len; i++) { 
    tw = data[i] 
    disp += tw.recipient_screen_name 
    } 
    doSomethingElseWith(disp) 
} 

function myFacebookCb(response) { 
    var data = response.data 
    var len = data.length 
    var fb = {} // placeholder object 
    for (var i = 0; i < len; i++) { 
    fb = data[i] 
    disp += fb.name 
    } 
    doSomethingElseWith(disp) 


} 

function doSomethingElseWith(disp) { 
    // draw it to the screen or something 
} 
2

這應該工作:

var disp, i = 0, l = tw.length; 
for(i; i < l; i++) { 
    disp += tw[i].recipient_screen_name; 
} 

alert(disp);