2013-10-31 18 views
1

我在JS的學習過程中,我的老師給了我們一個分配,我們將使用JS中JSON文件的信息。JSON to JavaScript Array並在變量中使用

問題是我似乎無法弄清楚如何將JSON轉換爲JavaScript中的變量/數組,因此我可以在現有的JS代碼中使用它。

我的JSON是這樣的:

"id": 0, 
    "albumName":"Greatest hits", 
    "artistName":"ZZ-top", 
    "artistWebsite":"http://www.zztop.com/", 
    "productionYear": 1992,  
    "trackList":[ 
     { 
      "trackNumber":1, 
      "trackTitle":"Gimme all your lovin'", 
      "trackTimeInSeconds":241 
     }, 

     { 
      "trackNumber":2, 
      "trackTitle":"sharp dressed man", 
      "trackTimeInSeconds":256 
     }, 

     { 
      "trackNumber":3, 
      "trackTitle":"Rough boy", 
      "trackTimeInSeconds":290 
     }, 

     { 
      "trackNumber":4, 
      "trackTitle":"Tush", 
      "trackTimeInSeconds":135 
     }, 

     { 
      "trackNumber":5, 
      "trackTitle":"My head's in Mississippi", 
      "trackTimeInSeconds":261 
     }, 

     { 
      "trackNumber":6, 
      "trackTitle":"Pearl Necklace", 
      "trackTimeInSeconds":246 
     }, 

     { 
      "trackNumber":7, 
      "trackTitle":"I'm bad, I'm nationwide", 
      "trackTimeInSeconds":287 
     }, 

     { 
      "trackNumber":8, 
      "trackTitle":"Viva Las Vegas", 
      "trackTimeInSeconds":288 
     }, 

     { 
      "trackNumber":9, 
      "trackTitle":"Doubleback", 
      "trackTimeInSeconds":236 
     }, 

     { 
      "trackNumber":10, 
      "trackTitle":"Gun Love", 
      "trackTimeInSeconds":220 
     }, 

     { 
      "trackNumber":11, 
      "trackTitle":"Got me under pressure", 
      "trackTimeInSeconds":241 
     }, 

     { 
      "trackNumber":12, 
      "trackTitle":"Give it up", 
      "trackTimeInSeconds":210 
     }, 

     { 
      "trackNumber":13, 
      "trackTitle":"Cheap sunglasses", 
      "trackTimeInSeconds":287 
     }, 

     { 
      "trackNumber":14, 
      "trackTitle":"Sleeping bag", 
      "trackTimeInSeconds":244 
     }, 

     { 
      "trackNumber":15, 
      "trackTitle":"Planet of women", 
      "trackTimeInSeconds":246 
     }, 

     { 
      "trackNumber":16, 
      "trackTitle":"La Grange", 
      "trackTimeInSeconds":233 
     }, 

     { 
      "trackNumber":17, 
      "trackTitle":"Tube snake boogie", 
      "trackTimeInSeconds":185 
     }, 

     { 
      "trackNumber":18, 
      "trackTitle":"Legs-remix version", 
      "trackTimeInSeconds":272 
     } 
    ] 
}, 

,我需要它來進入這個變種:

artistName : "ArtistName", 
    albumName : "AlbumName", 
    noOfTracks : 0, 
    prodYear : 9999, 
    trackList : "", 

    init : function(artistName, albumName, noOfTracks, prodYear, trackList){ 
     this.artistName = artistName; 
     this.albumName = albumName; 
     this.noOfTracks = noOfTracks; 
     this.prodYear = prodYear; 
     this.trackList = trackList; 

     return this; 
    }, 
+1

[This](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON)可能是一個開始... – Passerby

+0

看看部分標記'方法'在那特別是鏈接。 – Andy

+1

你給出的是不正確的JSON數據。正確的JSON數據必須包含在{}或[]中,以表示JS數組或對象,並且可以通過簡單的'eval'來解析,但這並不推薦。你應該得到正確的JSON數據(或者自己修復它)並使用'JSON.parse'函數。 –

回答

0

首先做一個字符串:

var ab = JSON.stringify(...); // pass your json here 

注:試試這個在控制檯上。

然後創建一個對象:

var ac = JSON.parse(ab); 

現在你有一個JavaScript對象,你可以訪問:

ac.artistName = artistName; 
    ac.albumName = albumName; 
    ac.noOfTracks = noOfTracks; 
    ac.prodYear = prodYear; 
    ac.trackList = trackList; 

希望這會有所幫助。 :)