将复选框标题和状态存储为 JSON

Storing check boxes title and state as JSON

我将复选框标题和状态存储为 JSON,并具有包含这些值的 JSONJSONObject 数组。

我试图将它存储为两个 JSONArrrays,一个用于标题,一个用于状态,但我无法编写一种算法来维护这些状态以及从列表中删除任何一个.

它需要太多代码行才能完成。 制作删除包含布尔值和其他包含字符串的数组元素的方法。

我们也不能在旧的 api 中使用 Jsonarray.remove() 方法。那么您建议如何有效地实现这一目标

注意 - 我不能使用 sharedPreferences,因为我要用这种类型的数据存储多行。它就像一个清单制作器,我们可以在其中添加或删除清单项目,并可以在完成后将其标记为完成。

I want to store in database as well and retrieve them when required, I chose JSON as it can be stored as string and can be parsed into object when required

你有很多选择。如果您使用的是数据库,只需创建一个模式,例如

checkbox_key TEXT NOT NULL,
checkbox_value INT DEFAULT 0

您当然可以使用共享首选项。只需制定您的模式,

checkbox.<checkbox-key>=<checkbox-value>

JSON 不是一个很好的选择,因为解析它是一项相对昂贵的操作。共享首选项虽然存储为 XML,但已通过内存缓存和异步写入进行了优化(参见 Editor.apply())。您可以用 JSON 做到这一点,但这只是重新发明轮子。