所以我有这个JSON,然后我的活动检索到一个字符串:
{"popular":
{"authors_last_month": [
{
"url":"http://activeden.net/user/OXYLUS",
"item":"OXYLUS",
"sales":"1148",
"image":"http://s3.envato.com/files/15599.jpg"
},
{
"url":"http://activeden.net/user/digitalscience",
"item":"digitalscience",
"sales":"681",
"image":"http://s3.envato.com/files/232005.jpg"
}
{
...
}
],
"items_last_week": [
{
"cost":"4.00",
"thumbnail":"http://s3.envato.com/files/227943.jpg",
"url":"http://activeden.net/item/christmas-decoration-balls/75682",
"sales":"43",
"item":"Christmas Decoration Balls",
"rating":"3",
"id":"75682"
},
{
"cost":"30.00",
"thumbnail":"http://s3.envato.com/files/226221.jpg",
"url":"http://activeden.net/item/xml-flip-book-as3/63869",
"sales":"27",
"item":"XML Flip Book / AS3",
"rating":"5",
"id":"63869"
},
{
...
}],
"items_last_three_months": [
{
"cost":"5.00",
"thumbnail":"http://s3.envato.com/files/195638.jpg",
"url":"http://activeden.net/item/image-logo-shiner-effect/55085",
"sales":"641",
"item":"image logo shiner effect",
"rating":"5",
"id":"55085"
},
{
"cost":"15.00",
"thumbnail":"http://s3.envato.com/files/180749.png",
"url":"http://activeden.net/item/banner-rotator-with-auto-delay-time/22243",
"sales":"533",
"item":"BANNER ROTATOR with Auto Delay Time",
"rating":"5",
"id":"22243"},
{
...
}]
}
}
Run Code Online (Sandbox Code Playgroud)
它也可以在这里访问,虽然因为它是一个很长的字符串,我已经修剪了上面的内容以显示所需的内容.
基本上,我希望能够访问"items_last_week"中的项目并创建它们的列表 - 最初我的计划是在左侧显示"缩略图",旁边有"项目",但是从今天的SDK看起来太难或不可能实现这一点,所以我很高兴只从列表中的'items_last_week'获取'item'数据.
来自php我很难使用任何可用于Java的JSON库,因为它看起来不仅仅是一行代码,我需要反序列化(我认为这是正确的词)JSON,以及它们似乎都需要某种形式的附加类,除了JSONArray/JSONObject脚本我不喜欢items_last_week嵌套的事实(再次,我认为这是JSON术语)并且需要很长时间才能运行Android模拟器.
因此,实际上,我需要一种(最好是简单的)方法将items_last_week数据传递给ListView.我知道我需要一个自定义适配器,我可能会理解,但我无法理解,无论我花了多少时间试图找出它,如何访问JSON字符串的某些部分..
最初我的计划是左边有'缩略图',旁边有'项目',但是从今天开始使用SDK看起来似乎太难或不可能
这远非不可能,但要做到正确将是乏味的,除非你使用已经包含了这种模式的东西(并且希望这是合理的"正确").在Web上,性能/带宽问题是用户的问题 - 在移动设备中,它们是您的问题.
因为它看起来不仅仅是我需要反序列化的一行代码(我认为这是正确的词)JSON
new JSONObject(data)是一行代码.现在,从前面提到的URL 获取 JSON(我认为你正在做的)将是几行代码.解析JSON或从互联网上获取它都不是Android独有的 - 所有这些在桌面Java应用程序或Java servlet或其他任何东西上看起来都是一样的.
除了JSONArray/JSONObject脚本,我不喜欢items_last_week嵌套的事实
我没有遇到像文件展示这样的结构解析JSON的问题.此外,这几乎不是Android独有的 - JSON解析器在许多其他基于Java的项目中使用.
并且需要花费很长时间才能在Android模拟器上运行
仿真器的速度与开发机器的速度有关.对我来说,模拟器通常比实际的手机硬件慢...而我的桌面是四核的.请记住,仿真器假装是在PC上运行的ARM芯片组,即时将ARM操作码转换为x86操作码,因此它不会很快,也不会很好地利用多个内核.
因此,实际上,我需要一种(最好是简单的)方法将items_last_week数据传递给ListView.
Android中没有任何内容可以采用任意JSON结构,使用任意数据,并将其直接转换为ListView.这不是JSON独有的 - XML会出现类似的现象.
你的选择是:
ListAdapter包装已解析的JSON 的自定义.MatrixCursor(想想2D数据数组)并使用SimpleCursorAdapter.ArrayList<String>并使用ArrayAdapter.从短期来看,选项#3可能是最简单的.
我知道我需要一个自定义适配器,我可能会理解,但我无法理解,无论我花了多少时间试图找出它,如何访问JSON字符串的某些部分..
这个问题在援助方面太过模糊.您可以考虑打开一个单独的问题,标记为Java和JSON,您可以在其中详细了解json.org解析器遇到问题的位置.
| 归档时间: |
|
| 查看次数: |
5553 次 |
| 最近记录: |