在localStorage中存储和检索

时间:2015-04-12 04:37:36

标签: javascript

我想将数据存储在localStorage中。我想把它变成一个数据库。

这是一个示例。用户将创建电子测试;它将有一个标题和描述。不止一个问题,每个问题都有多个选择。

另一位用户可以创建另一个电子测试。我如何将它存储在localStorage中?

目前我这样做:

KEY                | VALUES
----------------------------------------------------------
Tests              | ["Sample","Sample2","Sample3"]
----------------------------------------------------------
Description        | ["Sample","Sample2","Sample3"]
----------------------------------------------------------
Sample2            | ["question1","question2","question3"]
----------------------------------------------------------
question3          | ["Question","choice1","choice2","choice3"]
----------------------------------------------------------
question3_ifAnswer | ["","","yes","yes"]
----------------------------------------------------------

我认为有一种更好的存储方式。 顺便说一下,问题是动态添加的,以及每个问题的选择。

如何以更好的方式存储和检索它?

1 个答案:

答案 0 :(得分:0)

这看起来很难像一堆数组一样进行管理。

我可能会将它存储为像这样的javascript对象,然后将其转换为json并将生成的json存储在localStorage中。

我假设您了解localStorage的限制

var tests = [
    {
        title: "title 1",
        description: "Desc 1",
        questions: [
            {
                name: "question 1",
                type: "text"
            },
            {
                name: "question 2",
                type: "multiple choice",
                options: [
                    {
                        code: "A",
                        description: 'Choice A'
                    },
                    {
                        code: "B",
                        description: 'Choice B'
                    },
                    {
                        code: "C",
                        description: 'Choice C'
                    }
                ],
                answer: ""
            }
        ]

    },
    {
        title: "test 2",
        description: "Desc for test 2",
        questions: [],  //etc
        answer: ""
    }
];

var jsonstr = JSON.stringify(tests);

显然我只能猜测你的意图,所以你需要调整它以满足你的需要

当您从localStorage将其作为JSON字符串检索时,使用

将其转换回对象/数组
tests = JSON.parse(jsonstr);
相关问题