我正在尝试存储小的描述,并使用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,],
}
有什么想法吗?
答案 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)
这里缺少一些东西。
您应该用引号包装任何字符串文字。像这样 -
[1972,'lorem ipsum blablabla','video address']
您不应该在不需要它们的地方使用逗号字符。每个数组条目的末尾都有一个额外的逗号,并且在对象的最后一个元素后面还有一个额外的逗号。
这是格式化对象的正确方法。
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
。