如何在数组中创建JSON数组

时间:2012-02-14 21:49:16

标签: javascript database json local-storage

在这里发表第一篇文章

我正在尝试复制这种JSON对象,以便我可以使用stringify将其存储在localStorage中:

我希望能够在捕获事件时在历史记录内创建一个新的noteState但不知道该怎么做...

var history = {
    "noteState1": [
        {created: new Date(),
        modified: new Date(),
        left: "100",
        top: "200",
        text: "hello"},

        {created: new Date(),
        modified: new Date(),
        left: "150",
        top: "250",
        text: "new"},

        {created: new Date(),
        modified: new Date(),
        left: "200",
        top: "300",
        text: "world"}
    ], 
    "noteState2": [
        {created: new Date(),
        modified: new Date(),
        left: "100",
        top: "200",
        text: "hello"},

        {created: new Date(),
        modified: new Date(),
        left: "150",
        top: "250",
        text: "new"},

        {created: new Date(),
        modified: new Date(),
        left: "200",
        top: "300",
        text: "world"}
    ]
}

如何在历史记录中创建一个包含单个数组的新成员?

3 个答案:

答案 0 :(得分:5)

你不修改json字符串 - 这太冒险了。而是将它转换回本机javascript数组/对象,在其上使用常规数组push / pop类型运算符,然后转换回json字符串。

答案 1 :(得分:0)

为什么不能将历史记录保存为对象数组,然后添加新的noteState?如果要存储数组,只需将历史数组中的每个noteStates插入JSON对象即可。

答案 2 :(得分:0)

在执行任何操作之前,将这些json字符串转换为对象。通过这样做,您可以轻松地将名称空间添加到历史记录中,如下所示:

history.noteStateX = { x:1,y:2 };

现在历史上有这个属性以及其他属性。