Ich habe ein JSON-Objekt, das von einer AJAX-Anfrage zurückgegeben wird, und ich habe einige Probleme mit dem, .length
weil es immer wieder zurückgegeben wird undefined
. Ich frage mich nur, ob ich es richtig benutze:
console.log(data.length);
console.log(data.phones.length);
Beide kehren zurück undefined
, obwohl sie gültige Objekte sind.
Update:
Beispiel des zurückgegebenen JSON-Objekts:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
javascript
json
nkcmr
quelle
quelle
Antworten:
Sie können so etwas verwenden
quelle
Ihr Problem ist, dass Ihr Telefonobjekt keine Längeneigenschaft hat (es sei denn, Sie definieren es irgendwo in dem von Ihnen zurückgegebenen JSON), da Objekte nicht mit Arrays identisch sind, selbst wenn sie als assoziative Arrays verwendet werden. Wenn das Telefonobjekt ein Array wäre, hätte es eine Länge. Sie haben zwei Möglichkeiten (vielleicht mehr).
Ändern Sie Ihre JSON-Struktur (vorausgesetzt, dies ist möglich), sodass "Telefone" werden
(Beachten Sie, dass es für jedes Telefon keine wortnummerierte Kennung gibt, da diese in einem 0-indizierten Array zurückgegeben werden.) In dieser Antwort
phones.length
wird gültig.Durchlaufen Sie die Objekte in Ihrem Telefonobjekt und zählen Sie sie, während Sie gehen, z
Wenn Sie nur neue Browser - Targeting - Option 2 könnte wie folgt aussehen diese
quelle
Erwägen Sie die Verwendung von underscore.js . Damit können Sie die Größe überprüfen, dh wie folgt:
quelle
Sie müssen Ihr JSON-Format nicht ändern.
ersetzen:
mit:
quelle
quelle
Versuche dies
quelle
verwende das hier
oder
quelle
quelle
TechnologyId
Eigenschaft fehlt