我想将数据存储在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"]
----------------------------------------------------------
我认为有一种更好的存储方式。 顺便说一下,问题是动态添加的,以及每个问题的选择。
如何以更好的方式存储和检索它?
答案 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);