Javascript 在localStorage中存储和检索

Javascript 在localStorage中存储和检索,javascript,Javascript,我想在localStorage中存储数据。我想把它变成一个数据库 这是一个样本。用户将创建一个电子测试;它将有一个标题和描述。不止一个问题,每个问题都有不止一个选择 其他用户可以创建另一个电子测试。如何将其存储在localStorage中 目前我是这样做的: KEY | VALUES ---------------------------------------------------------- Tests | ["Sample","S

我想在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"]
----------------------------------------------------------
我认为有更好的方法来储存它。 顺便说一下,问题以及每个问题中的选项都是动态添加的


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

这看起来很难作为一组数组来管理

我可能会像这样将其存储为javascript对象,然后将其转换为json,并将生成的json strong存储在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);

将其全部放入一个对象中,然后使用JSON存储该对象。@mohamediras,我在上面的示例中进行了尝试。我已经把它储存好了。“但我希望有更好的方法。”丹达维斯,我怎样才能把它扔进一个物体里呢?这是什么意思?我如何在localStroage中检索它,以及如何编辑它?例如,我想更改问题中的选项?您可以从localStorage检索JSON,将其解析为POJO,根据需要对其进行修改,然后将其转换回JSON并将其存储回。您可以像处理普通JS对象一样处理
test
数组中的
test
对象,然后,当您想将其保存到本地存储时,将其转换为JSON字符串并保存。请参阅此答案,了解如何从本地存储中放入某些内容。我的意思是,如何获得价值?例如,我想得到“test1”test?
var test1=tests[0]中的问题总数
var numquestions=test1.questions.length