【发布时间】:2021-03-04 14:47:25
【问题描述】:
我有一个包含 JSON 对象的 JSON 数组。每个 JSON 对象只有一个简单的 key/value 对(没有嵌套数组或类似的东西)。例如:
[
{
"id": "01",
"name": "Zero One",
"desc": "Something about Zero One"
...
},
...
]
这些 JSON 对象中的值稍后将由应用程序使用。
根据我有限的经验,有两种简单的方法可以做到这一点:
- 在应用启动时解析 JSON ONCE,并将所有对象存储在 POJO 的
ArrayList(或任何List甚至Map)中。
我担心使用这种方法是内存使用和相对较长的等待时间。例如,如果 JSON 数组包含数百甚至数千个 JSON 对象,这意味着应用程序必须分配数百/数千个 POJO 的内存,我不知道我可以准确计算出多少或如何计算。理想情况下,HashMap或ArrayMap可能更适合获取/访问值,但我读到Map比简单的List更占用内存。 - 仅在需要数据时解析 JSON。
我对这种方法的担心可能是性能。我说“也许”是因为我不知道解析 JSON 文件/字符串到底有多麻烦。如果每次应用程序请求时我都必须解析 JSON,那么我基本上必须循环遍历 JSON 数组,获取 JSON 对象,并检查匹配的id,以获取value。
在性能和内存效率方面,哪一个更好?
有没有比两者都更好的替代方案?
【问题讨论】:
标签: java android json performance