嗨,我最近在 flash builder 中使用 JSON 数据时遇到了一些问题,我希望有人能在这里帮助我。
在过去的一个月里,我一直在努力解决这个问题,所以我一直在环顾四周,一直在尝试我能找到或想到的一切。我只是卡住了。
我一直在为带有 Adobe Flash Builder 4.6 的 Blackberry Playbook 平板电脑开发一个 flex 移动应用程序。它是一个 reddit 应用程序,旨在为用户提供主要的 reddit 提要、subreddits、搜索功能、希望登录的东西等。当然,我需要借助 reddit API 来访问这些信息,其中的文档可以在这里找到:https://github.com/reddit/reddit/wiki/API/ api 使用 XML 或 JSON 格式的数据。
现在谈谈我的问题——如上所述,我想在应用程序中显示 reddit 提要。我希望能够使用项目渲染器来自定义列表每个条目中显示的数据。
一个条目将包括:1)帖子中图像的缩略图 2)帖子的标题 3)“喜欢/不喜欢”按钮,但这目前并不重要。
当然,首先,我在设计视图上放置了一个 spark List 组件。然后我使用数据/服务面板配置了一个新的 HTTP 数据服务。我为网址指定了http://www.reddit.com/r/all.json。我配置了返回类型,并进行了测试操作。一切都连接得很好。所有数据都正常通过。我会给你一个关于数据返回的想法,以便你以后可以理解我的问题。
测试操作结果(json数据结构):
- NoName1
- 数据
- 后
- 前
- 孩子们
- [0]
- 数据
- 媒体嵌入
- 分数
- ID
- 标题
- 缩略图
- 网址
- (等等等等……)
- 种类
- 数据
- [1]
- 数据
- 媒体嵌入
- 分数
- 标题
- 缩略图
- (等等等等……)
- 种类
- 数据
- [2](数组继续)
- [0]
- 模式哈希
- 种类
- 数据
如您所见,例如,要获得缩略图,您必须通过 data.children[].data.thumnail。当我尝试将此数据绑定到 spark List 组件时,我将数据服务指定为来自上述服务。然后我将数据提供程序选项指定为 Children[],因为该值通常设置为数组。现在这就是麻烦的开始。最后一个选项,标签字段,只给了我一个可供选择的值:'kind'。如您所知,它并不期望数据进一步嵌套。它停在每个数组项中的两个值上,即 Data 和 Kind,尽管它只为我提供 Kind。我需要再上一层才能访问标题和缩略图。这是我的问题。
现在,我已经分析了绑定的代码,并尝试更改它以适应进一步的嵌套值。从来没有成功过。以下是绑定生成的代码:
<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"
或“缩略图”。
我当然希望有人可以帮助我。我不知道该怎么做。如果您需要任何进一步的说明,我很乐意提供。我试图尽可能清楚地解释上述情况。太感谢了。
泰德