2016-09-03 32 views
1

我想使用node.js解析JSON API響應。我把所有東西都放下了,但是在某個時候(這一定很簡單),我完全停留在如何接近子陣列或其他東西上。解析JSON文件 - 子數組或方括號內node.js

這是我想要完成的一個例子。 (忽略TF2主題)

"AWPer Hand": 
{ 
    "defindex": [851], 
    "prices": { 
     "1": { 
      "Tradable": { 
       "Craftable": [{ 
        "value": 15.33, 
        "currency": "metal", 
        "difference": -0.33, 
        "last_update": 1469842566, 
        "value_raw": 15.33 
       }] 
      } 
     }, 
     "6": { 
      "Tradable": { 
       "Craftable": [{ 
        "value": 3, 
        "currency": "metal", 
        "difference": 0.17, 
        "last_update": 1466442983, 
        "value_raw": 3 
       }] 
      } 
     }, 
     "11": { 
      "Tradable": { 
       "Craftable": [{ 
        "value": 5, 
        "currency": "keys", 
        "difference": -4.75, 
        "last_update": 1469371613, 
        "value_raw": 102.475 
       }] 
      } 
     } 
    } 
} 

這不是正確的格式有很多裏面的文件,但得到的格式,它的外觀主要是我有這行代碼,工程

var obj = JSON.parse(data); 
var price = obj['response']['items'][itemName]['prices'][quality]['Tradable']['Craftable'] 

(示例迴應是病房上的[itemName])

在craftable裏面有一個圍繞方括號的子數組,我如何在node.js中正確解析這個來獲取「value_raw」ID?

謝謝你的時間!

回答

6

我認爲最簡單的辦法是

price[0].value_raw 

,因爲它和數組,它包含的對象

+1

操作!就是這樣。非常感謝。我知道這很簡單,雖然我從來沒有玩過JavaScript,很少碰到JSON! – Nom

+0

歡迎您:)當我累了仍然編碼時,我通常會發生類似的錯誤 – lacexd

1

裏面的craftable有方括號括子陣,我將如何解析這個正確內node.js獲取「value_raw」ID?

這裏的craftable包含一個對象數組 - 即使它只有一個對象。要訪問該對象,只需定義該項目的索引值即可:這裏是0:obj[..etc..]['Craftable'][0]

`Craftable [0]'對象的屬性可以通過JavaScript .dot表示法獲得。 EG ...

obj. (.etc.) .Craftable[0].difference; 
obj. (.etc.) .Craftable[0].value_raw; 

...或括號標記。

obj[..etc..]['Craftable'][0]['difference']; 
obj[..etc..]['Craftable'][0]['value_raw']; 

.dot表示法一般推薦在對象關鍵字沒有被動態訪問的地方。