2016-11-21 5 views
-4

So wird mein Server eine JSON-Datei mit folgendem Aufbau empfangen sein:Wie zähle ich die Anzahl der Objekte in einem Array in einer JSON-Datei?

{ 
"serial": "123", 
"pass": "abc", 
"archives": [ 
    { 
     "values" = 1 
    }, 
    { 
     "values" = 2 
    }, 
    { 
     "values" = 3 
    }, 
    { 
     "values": 4 

    } 
    ] 
} 

Wie kann ich die Anzahl der Objekte innerhalb des Arrays „Archiv“ aus meiner Hauptdatei zählen? (In diesem Fall vier)

+1

Wie finden Sie normalerweise die Länge eines Arrays? – jonrsharpe

+1

das ist nicht gültig json. – corn3lius

+3

das zeigt wirklich keine Mühe auf Forschung ... – Argee

Antwort

1

Wenn Ihr Objekt obj genannt:

var obj = { 
"serial": "123", 
"pass": "abc", 
"archives": [ 
    { 
     "values": 1 
    }, 
    { 
     "values": 2 
    }, 
    { 
     "values": 3 
    }, 
    { 
     "values": 4 
    } 
    ] 
}; 

Dann ist es obj.archives.length.

Übrigens habe ich Ihren JSON repariert, weil es ungültig war. Auf dem echten Server müssen Sie die JSON.parse innerhalb eines try/catch Blocks setzen oder tryjson verwenden, um zu vermeiden, dass Ihr Code auf ungültigem JSON abstürzt.

+0

vorausgesetzt, seine gültige JSON ... – corn3lius

+0

@ corn3lius ja - es war nicht. Ich habe es repariert. – rsp

0

Array.length: JavaScript-Array length Die Eigenschaft gibt eine vorzeichenlose 32-Bit-Ganzzahl zurück, die die Anzahl der Elemente in einem Array angibt und auch zum Festlegen der Länge eines Arrays verwendet werden kann.

Syntax:

Return die Länge eines Arrays:

array.length 

die Länge eines Arrays Set:

array.length = number 

-Code:

var obj = {"serial": "123","pass": "abc","archives": [{"values": 1}, {"values": 2}, {"values": 3}, {"values": 4}]}; 
 
var len = obj.archives.length; 
 

 
console.log(len);

Beachten Sie, dass die Länge Eigenschaft kann ein Array jederzeit zu verkürzen. Wenn Sie ein Array erweitern, indem Sie seine length-Eigenschaft ändern, wird die Anzahl der tatsächlichen Elemente nicht erhöht. Wenn Sie zum Beispiel die Länge auf 3 setzen, wenn sie momentan 2 ist, enthält das Array immer noch nur 2 Elemente. Daher gibt die length -Eigenschaft nicht unbedingt die Anzahl der definierten Werte im Array an. Siehe auch relationship between length and numerical properties.

Verwandte Themen