flex的httpservice接收xml返回出错
如题,大于1个的时候可以用arraycollection收集,但是只有一个的时候提示对象为空,好郁闷,怎么对策好呢?如何从result的属性里得知返回的只有一个对象呢?...
如题,大于1个的时候可以用arraycollection收集,但是只有一个的时候提示对象为空,好郁闷,怎么对策好呢?如何从result的属性里得知返回的只有一个对象呢?
展开
展开全部
直接用ArrayCollection()强制转换,不要用new ArrayCollection()。用new ArrayCollection()会出错,出错信息:强制转换类型失败:无法将 mx.collections::ArrayCollection@5d89481 转换为 Array。
另外,如果通过HTTPService获清枯取到的XML中只有一条数据,例如:
<tips><tip> <no>16</no> <date>2010/03/19</date> <content>内容</content></tip></tips>就不能使用var myData:ArrayCollection = ArrayCollection(event.result.tips.tip);这种方法创建ArrayCollection要这样:var data:Array = new Array({no:event.result.tips.tip.no,date:event.result.tips.tip.date, content:event.result.tips.tip.content});myData = new ArrayCollection(data);通过调试,可以看到如果返回的是多条记录,event.result.tips.tip是ArrayConlection类型胡正激的,而如果只有一条记录裤袜,就是ObjectProxy类型的。见图:参看ArrayConlection的构造函数:public function ArrayCollection(source:Array = null)其参数是Array类型的,所以,只有一条记录的时候当然会出错了。
另外,如果通过HTTPService获清枯取到的XML中只有一条数据,例如:
<tips><tip> <no>16</no> <date>2010/03/19</date> <content>内容</content></tip></tips>就不能使用var myData:ArrayCollection = ArrayCollection(event.result.tips.tip);这种方法创建ArrayCollection要这样:var data:Array = new Array({no:event.result.tips.tip.no,date:event.result.tips.tip.date, content:event.result.tips.tip.content});myData = new ArrayCollection(data);通过调试,可以看到如果返回的是多条记录,event.result.tips.tip是ArrayConlection类型胡正激的,而如果只有一条记录裤袜,就是ObjectProxy类型的。见图:参看ArrayConlection的构造函数:public function ArrayCollection(source:Array = null)其参数是Array类型的,所以,只有一条记录的时候当然会出错了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询