こんにちは、私は最近Flash BuilderでJSONデータを使用する際に問題が発生しており、誰かがここで私を助けてくれることを望んでいました。
私はこの1か月間、この問題にしっかりと取り組んできたので、周りを見回して、見つけたり考えたりできるすべてのことを試してきました。私は単に立ち往生しています。
私はAdobeFlashBuilder4.6を搭載したBlackberryPlaybookタブレット用のフレックスモバイルアプリケーションに取り組んでいます。これはredditアプリであり、ユーザーにメインのredditフィード、サブレディット、検索機能、できればログインなどを提供するように設計されています。もちろん、この情報にアクセスするにはreddit APIの助けが必要です。この情報には、次のドキュメントがあります。https://github.com/reddit/reddit/wiki/API/ apiは、XMLまたはJSON形式のデータを使用します。
今私の問題に-上記のように、私はアプリ内にredditフィードを表示したいと思います。アイテムレンダラーを使用して、リストの各エントリ内に表示されるデータをカスタマイズできるようにしたいと思います。
1つのエントリは、1)投稿内の画像のサムネイル2)投稿のタイトル3)「いいね/嫌い」ボタンで構成されますが、現時点では重要ではありません。
もちろん、最初に、スパークリストコンポーネントをデザインビューに配置しました。次に、[データ/サービス]パネルを使用して新しいHTTPデータサービスを構成しました。URLにhttp://www.reddit.com/r/all.jsonを指定しました。リターンタイプを設定し、テスト操作を行いました。すべてがうまく接続されました。すべてのデータは通常どおりに送信されました。後で私の問題を理解できるように、データがどのように返されるかについてのアイデアを提供します。
テスト操作結果(jsonデータ構造):
- NoName1
- データ
- 後
- 前
- 子供
- [0]
- データ
- media_embed
- スコア
- id
- タイトル
- サムネイル
- url
- (など...)
- 親切
- データ
- [1]
- データ
- media_embed
- スコア
- タイトル
- サムネイル
- (など...)
- 親切
- データ
- [2](配列は続く)
- [0]
- modhash
- 親切
- データ
ご覧のとおり、たとえばthumnailに到達するには、data.children[]。data.thumnailを通過する必要があります。このデータをsparkListコンポーネントにバインドしようとしたときに、上記のデータサービスを指定しました。次に、データプロバイダーオプションをChildren []に指定しました。これは、この値が通常、配列に設定されているためです。ここから問題が始まります。最後のオプションであるラベルフィールドでは、選択できる値が1つだけでした:'kind'。したがって、お分かりのように、データがさらにネストされることは期待していませんでした。種類のみを提供しますが、各配列項目内の2つの値(データと種類)で停止します。TitleとThumbnailにアクセスするには、さらに1レベル進む必要があります。これが私の問題です。
ここで、バインディングのコードを分析し、さらにネストされた値に対応するようにコードを変更してみました。これまでのところ成功はありません。バインディングが生成するコードは次のとおりです。
<s:List
id="myList" width="100%" height="100%" change="myList_changeHandler(event)"
creationComplete="myList_creationCompleteHandler(event)" labelField="kind">
<s:AsyncListViewlist="{TypeUtility.convertToCollectionredditFeedJSONResult.lastResult.data.children)}"/>
<s:List>
明らかに、次のようなものが必要です
。"TypeUtility.convertToCollection(redditFeedJSONResult.lastResult.data.children.data"
次に、labelField="title"
または「サムネイル」を設定します。
私は確かに誰かがこれで私を助けてくれることを願っています。私は何をすべきかについて頭がおかしい。さらに詳しい説明が必要な場合は、喜んで提供させていただきます。私は上記の状況をできるだけ明確に説明しようとしました。どうもありがとう。
テッド