2012-01-21 50 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”即可。我已经测试过,所以我知道它的工作原理。如果它仍然不适合你,还有其他的错误。 –