2012-01-16 3 views
1

Как получить значения массива в формате Json в twitter. Я уже знаю, как обрабатывать json-формат от yahoo и fb, но формат json, возвращаемый twitter, отличается функцией обратного вызова.Получить значения массива из Json-формата Javascript

фб

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-ый, я не могу получить второй один из массива.

+0

Отсутствует запятая во втором примере между вашими объектами. Кроме того, что такое 'мой'? – Joe

+0

@Joe забыть напечатать это, но в фактическом выходе есть. my - функция обратного вызова. –

+0

Ваш код работает нормально как есть, какая у вас проблема? http://jsfiddle.net/BnCVU/ –

ответ

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); 
Смежные вопросы