如何保存以不同方式排序的.json文件中的数据,应将其存储在哪里以及如何检索它?

时间:2018-10-03 21:33:16

标签: java android json arraylist

我是Android开发的新手,并创建了一个“事件记录器”应用程序,您可以从该活动中选择无限数量的事件开始:

enter image description here

所有事件都添加到一个名为“ 事件”的ArrayList中,如下所示:

[Event 1, Event 2, Event 3]

在下一个活动中,您可以启动计时器,按下按钮并将时间作为字符串记录到Arraylist的Arraylist中。

enter image description here

创建的Arraylist的ArrayList名为“ allEventsList

ArrayList<ArrayList<String>> allActionsList;

,然后填充数据(时间),所以看起来像这样

[[00:00:01, 00:00:09, 00:00:12], [00:00:04, 00:00:07, 00:00:14], [00:00:03, 00:00:06, 00:00:15]]

最后,我想确保在一个看起来像这样的.json文件中

{
"events":{
    "Event 1":["00:00:01", "00:00:09", "00:00:12"],
    "Event 2":["00:00:04", "00:00:07", "00:00:14"],
    "Event 3":["00:00:03", "00:00:06", "00:00:15"]

}

如何将数据写入.json文件,以后如何检索以及将其存储在哪里?

1 个答案:

答案 0 :(得分:2)

在这里您可以做到这一点:

private String convertToJsonString(ArrayList<ArrayList<String>> allActionsList) 
{
    JSONObject jObj = new JSONObject();
    JSONObject events = new JSONObject();
    JSONArray eventX;
    int count = 1;
    String key;

    try {
        for(ArrayList<String> array : allActionsList){
            key = String.format("Event %d", count);
            eventX = new JSONArray();
            for(String s : array){
                eventX.put(s);
            }
            events.put(key, eventX);
            count++;
        }
        jObj.put("events", events);

    } catch(Exception e){
        // failed somewhere to create JSON object
        e.printStackTrace();
    }
    return jObj.toString();
}

转换为String后,您可以将其保存到文件中。

然后,您可以将它作为字符串从文件中读取回来,并像下面这样构建JSON对象:

JSONObject events = new JSONObject(<string read from file>);

希望这对您有用。