2016-12-25 62 views
0

我有一個名爲gameupdater.json無法從陣列

gameupdater.json此JSON文件獲取信息:

{ "730":{ 
    "success":true, 
    "data":{ 
     "price_overview":{ 
      "currency":"EUR", 
      "initial":1399, 
      "final":937, 
      "discount_percent":33 
     } 
    } 
    } 
} 

而且我有了下面的代碼的JavaScript文件:

var updater = JSON.parse(fs.readFileSync('gameupdater.json')); 
 
var jsonstring = JSON.stringify(updater, null, 4); 
 

 
var num = updater.730.data.priceoverview.initial; 
 

 
console.log(num);

然而,每當我運行t(節點bot.js)在CMD中。 它不給我什麼我期待的,這是1399

相反,它給了我這個錯誤:

var num = updater.730.data.priceoverview.initial; 
      ^^^^ 

語法錯誤:意外的數

哦,我敢肯定它將很難改變的東西,因爲這個陣列將自動從這個網站下載: http://store.steampowered.com/api/appdetails?appids=730

回答

3

你不能使用點號語法的數字。您需要使用支具語法和訪問它作爲一個字符串:

updater["730"].data... 

或者,如果屬性完全是一個數字,您還可以使用裸數字,但再次,它必須在方括號內:

updater[730].data... 
+0

等待,實際上固定的我是有錯誤!非常感謝你! –

+0

@AhmadOthman如果這解決了你的問題並幫助了你,你可以接受這個答案,並給它一個upvote。 – Carcigenicate

+0

我還不能接受,我需要等10分鐘。但我肯定會在這10分鐘內消失。 –

2

不能使用運營商訪問性質對象的,如果它與開始 - 你必須使用括號標記[]

請參閱本MDN鏈接點表示法部分 - Property Accessors

In this code, property must be a valid JavaScript identifier, i.e. a sequence of alphanumerical characters, also including the underscore ("_") and dollar sign ("$"), that cannot start with a number

觀看演示如下:

var updater = { 
 
    "730": { 
 
    "success": true, 
 
    "data": { 
 
     "price_overview": { 
 
     "currency": "EUR", 
 
     "initial": 1399, 
 
     "final": 937, 
 
     "discount_percent": 33 
 
     } 
 
    } 
 
    } 
 
}; 
 

 
var jsonstring = JSON.stringify(updater, null, 4); 
 

 
var num = updater['730'].data.price_overview.initial; 
 

 
console.log(num);