2012-07-07 50 views
0

我試圖存儲小的描述,並在不同的時間使用jQuery將它們調用到div中。有50個不同的數據。我想我會創建一個簡單的json對象來存儲我的信息。我想知道如何使用JavaScript訪問數據?如何在JavaScript應用程序,JSON中存儲和訪問信息項?

我試過,但它並沒有在所有的工作:

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,], 
} 

有什麼想法?

回答

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訪問它。

+0

是的 - 這是一個更好的方式來存儲數據。使用描述性鍵可以提高代碼的可讀性。 – Lix 2012-07-07 12:08:26

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. 
} 
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