0

HTTPservice を使用して XML をロードし、結果をリストに表示します。複数の XML レコードが見つかった場合に機能します....しかし、返された XML レコードが 1 つしかない場合、何らかの理由で別の方法で処理され、このエラーが生成されます。 :

Suspended: TypeError: Error #1034: Type Coercion failed: cannot convert mx.utils::ObjectProxy

次のような投稿が表示されます。

http://anupushkaran.blogspot.com/2010/02/typeerror-error-1034-type-coercion.html

しかし、それをHTTPServiceのresultHandlerコードブロックに適応させる方法がわかりません...

FB 4.6 を使用しており、XML 構造は次のようになります。

SiteXYZ
   Events
      EventListing

使用したいデータはすべて EventListing ノードの下にあります。

whats の長さが返されたことを検出できるコードをいくつかテストしたので、長さが 1 であることを検出して、別の方法で何かを処理できると思います。

私が見ているもう1つのことは、私を近づけると思います...ネットワークモニターのTreeView> Response> Response Bodyを見ると、成功した旅行でボディが次のように戻ってくることがわかります。

SiteXYZ
  Events
     EventListing
        [0]
        [1]....  and so on....

ただし、SINGLE レコードが返された場合、レスポンスの本文は次のように返されます。

SiteXYZ
   Events
      EventListing

そのため、返されたレコードが 1 つだけであることを検出し、それに応じてリスト dataProvider を設定することはできませんか? そのため、多くのレコードが返された場合、データプロバイダーは次のように設定されます。

list1.dataProvider = myXML.lastResult.SiteXYZ.Events.EventListing;

しかし、たった 1 つのレコードが返された場合、その dataProvider はどのように設定されるのでしょうか? これはうまくいきませんでした:

list1.dataProvider = lfXML.lastResult.LeisureFun.Events;

誰でもこれを手伝ってもらえますか? 私のアプローチはベースから外れていますか?質問のとりとめのない性質で申し訳ありませんが、入力したときに約5回停止し、考えたときに頭に浮かんだ多くのことを試しました...それでも何も機能しませんでした...私は何かに夢中になっているように感じます(間違っているかもしれませんが)まだ解決できません。

4

1 に答える 1

0

答えは私が参照した元のウェブサイトにありました....

私はその投稿が提示された問題が何であるか、そのコードスニペットがどのようにそれに対処し、それを私のresultHandlerブロックに入れることで私のために機能させることができたかを詳しく調べました...

arr=new ArrayCollection();
if(event.result.SiteXYZ.Events.EventListing is ArrayCollection)
{
arr = ArrayCollection(event.result.SiteXYZ.Events.EventListing);
}
if(event.result.SiteXYZ.Events.EventListing is ObjectProxy)
{
arr =new ArrayCollection(ArrayUtil.toArray
    (event.result.SiteXYZ.Events.EventListing));
}

返されたレコードが 1 つある場合、正常に表示されるようになりました...複数のレコードが返された場合も同じです。

助けてくれてありがとう...私は間違いなく将来の使用のためにこのスニペットを保存します!

于 2013-03-14T21:41:06.840 に答える