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