如何在javascript app,JSON中存储和访问信息项?

时间:2012-07-07 12:02:23

标签: javascript jquery json

我正在尝试存储小的描述,并使用jquery在不同的时间将它们调用到div中。有50种不同的数据。我以为我会创建一个简单的json对象来存储我的信息。我想知道如何使用javascript访问数据?

我试过了,但它根本不起作用:

var myArray = JSON.parse(timeline_info);
var length = myArray.length;
alert(myArray.0[0]);

这是我的JSON:

var timeline_info = {
    0 : [1972,lorem ipsum blablabla,video address,],
    1 : [1972,lorem ipsum blablabla,video address,],
    2 : [1972,lorem ipsum blablabla,video address,],
    3 : [1972,lorem ipsum blablabla,video address,],
    4 : [1972,lorem ipsum blablabla,video address,],
    5 : [1972,lorem ipsum blablabla,video address,],
    6 : [1972,lorem ipsum blablabla,video address,],
    7 : [1972,lorem ipsum blablabla,video address,],
    8 : [1972,lorem ipsum blablabla,video address,],
    9 : [1972,lorem ipsum blablabla,video address,],
}

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

  • timeline_info不是JSON文本,它是JavaScript对象文字。
  • {}表示一个对象,而不是数组,由[]表示。
  • 您不应在数组或对象的末尾添加逗号。
  • 必须引用字符串。
  • 自动分叉插入有一些问题,避免它。

您已订购数据,请使用数组文字。

var i, timeline_info, length;
timeline_info = [
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"],
    [1972,"lorem ipsum blablabla","video address"]
];

length = timeline_info.length;
for (i = 0; i < length; i++) {
    console.log(timeline_info[i][0]); // 1972, 10 times.
}

答案 1 :(得分:1)

那是not JSON。尝试

var timeline_info = [
    {
        "year": 1972,
        "description": "lorem ipsum blablabla",
        "video": "video address"
    },
    {
        "year": 1972,
        "description": "lorem ipsum blablabla",
        "video": "video address"
    }
];

并使用timeline_info[0].year访问它。

答案 2 :(得分:0)

这里缺少一些东西。

  1. 您应该用引号包装任何字符串文字。像这样 -
    [1972,'lorem ipsum blablabla','video address']

  2. 您不应该在不需要它们的地方使用逗号字符。每个数组条目的末尾都有一个额外的逗号,并且在对象的最后一个元素后面还有一个额外的逗号。


  3. 这是格式化对象的正确方法。

    var timeline_info = {
        0 : [1970,'lorem ipsum blablabla','video address'],
        ...
        8 : [1978,'lorem ipsum blablabla','video address'],
        9 : [1979,'lorem ipsum blablabla','video address']
    }
    

    现在timeline_info[0][0]将返回1970