2012-01-21 94 views
1

所以我知道如何使用twitter的搜索api將json數據導入到flash中,因爲數組名稱通常並不奇怪,但我對json並沒有太多的經驗。對於趨勢API數據,我不知道如何訪問它,因爲數組名稱是日期和空間和冒號,我不知道該怎麼做。通常情況下在閃光來獲取JSON數據我會做這樣的事情如何將twitter api趨勢json數據轉換爲flash as3?

json.trends [0] .2012-01-21 01:20.name

,但不起作用。當數組名稱爲日期時,有人能告訴我如何提取姓名數據嗎?我很抱歉,如果我將這些事情稱爲錯誤的名稱,我不太確定他們的名字是什麼。

爲了更好地理解我在說什麼,請將此鏈接https://api.twitter.com/1/trends/daily.json複製到此網站http://jsonformatter.curiousconcept.com/以便格式化JSON。

我希望我的問題很有意義,並且非常感謝您提前。

回答

2
  var result:Object = JSON.decode(urlLoader.data); 

      var trends:Object = result.trends; 

      // trends in an object here, not array 
      // loop to find the properties in trends 
      for(var date:String in trends){ 
       // date is a property of trends 
       // trends[date] is the value of property date 
       // trends[date] is an array 
       var items:Array = trends[date]; 

       //for (var i=0; i<items.length; i++){ 
       // var item:Object = items[i]; 

       // loop in the array to get each item 
       for each(var item:Object in items){ 

       } 

      } 
+0

你永遠是我的英雄又一次,哈哈,它完美的作品,謝謝你!我的問題是你怎麼知道這樣做會抓住日期[for(var date:String in trend)]我甚至沒有想到JSON數據中的實際日期是一個字符串。你認爲你可以給我和解釋你的代碼中所做的事情,而不是跟蹤語句,我想更好地理解它,再次感謝! for(var date:趨勢中的字符串){ var items:Array = trends [date]; 每個(VAR項:對象中的項目){ } } – barit

+0

'爲(VAR屬性:字符串在對象){跡(屬性,對象[屬性]);}'環路是用來獲取所有屬性的對象 – Diode

+0

我已經用評論更新了答案 – Diode

0

試試這個json.trends[0]["2012-01-21 01:20"].name

x.y非常簡單,只是語法糖x["y"]

+0

感謝您的回覆,我只是想你的代碼,但沒有運氣行,太讓我的錯誤,並且錯誤是「一個術語是不確定的,沒有屬性。」再次感謝您試圖幫助 – barit

0

嘗試json.trends["2012-01-21 01:20"][0].name

trends不是一個數組。

此外,你將不得不注意,時間值(這給了一個數組)將隨着時間而改變。

我不知道爲什麼Twitter選擇了這種奇怪的結構,你必須以某種方式查看數據中使用的日期和時間,而不是每次調用都以相同的方式訪問數組?如果有人知道或可以猜出原因,請在評論中說明。

{ 
    "trends":{ 
     "2012-01-21 10:40":[ 
     { 
      "name":"#IReallyLike", 
      "query":"#IReallyLike", 
      "promoted_content":null, 
      "events":null 
     }, 
     { 
      "name":"SOPA Is Dead", 
      "query":"\"SOPA Is Dead\"" ... 
+0

是的,如果他們使用類似「日期」的東西可能會讓我的生活更輕鬆,並且感謝您嘗試提供幫助,但不幸的是它仍然無效。 – barit

+0

json.trends [「2012-01-21 01:20」] [0] .name工作,只要用正確的字符串替換「2012-01-21 01:20」即可。我已經測試過,所以我知道它的工作原理。如果它仍然不適合你,還有其他的錯誤。 –