2016-08-14 8 views
0

Ich versuche auf Mitglieder in einem JSON zugreifen, aber ich habe Probleme. Hier ist ein Beispiel für eine der JSON-Objekte, gespeichert in var obj:Zugriff auf verschachtelte Mitglieder in JSON

var fs = require('fs'); 
var obj = [ 
    { 
    "_id": "52d7f816f96d7f6f31fbb680", 
    "regNum": "0361300035313000002", 
    "sd": "2013-01-01T00:00:00", 
    "pd": "2013-01-25T09:30:29Z", 
    "prd": "2012-12-18", 
    "p": 1395000000, 
    "pt": [ 
     { 
     "name": name here", 
     "price": 1395000000, 
     "OKDP": { 
      "code": "5520109", 
      "name": "name here" 
     }, 
     "sid": "25484812", 
     "sum": "1395000000", 
     "OKEI": { 
      "code": "796", 
      "name": "name two" 
     }, 
     "quantity": "1" 
     } 
    ], 
    "b": 0, 
    "c": 0, 
    "s": 0 
    } 
]; 

Ich versuche, den sid und Summe Werte zugreifen, indem Sie folgendermaßen vorgehen:

var sid = []; 
var sum = []; 

obj.forEach(block => { 
    var sidOut = block.pt.sid; 
    var sumOut = block.pt.sum; 

    sid.push(sidOut); 
    sum.push(sumOut); 

}); 

console.log(sid); 
console.log(sum); 

Ich habe versucht, die Lösung here, aber wenn ich diese ausführen gibt es mir [undefined] Fehler.

Warum kann ich nicht auf diese beiden Werte zugreifen?

+2

'Block erhalten. pt [0] .sid; '; beachten Sie Ihre 1-Element-Arrays – dandavis

+0

@dandavis whoops! Das war es, danke. Fühlen Sie sich frei, eine Antwort zu posten – user3335607

Antwort

0

, wenn Sie Ihre pt sehen ist ein Array eines Objekts [{}] so müssen Sie wählen, welches Element Sie so

var sidOut = block.pt[0].sid; 
var sumOut = block.pt[0].sum; 

zugreifen möchten, sollten Sie das richtige Ergebnis

Verwandte Themen