0

我正在尝试存储小的描述并使用 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,],
}

有什么想法吗?

4

3 回答 3

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.
}
于 2012-07-07T12:04:28.367 回答
1

不是 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.

于 2012-07-07T12:06:48.583 回答
0

这里缺少一些东西。

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

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


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

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

于 2012-07-07T12:07:08.087 回答