Fehlermeldung “Objekt.Tasten genannt, die auf nicht-Objekt", verursacht durch leere json-Ausgabe
Ich erhielt eine Fehlermeldung, die Object.keys called on non-object
. Der problematische code ist;
numberOfEmployees = Object.keys(employee_data).length;
employee_data
ist ein json-Objekt, das zugewiesen bekommt json-output-Daten von einem web service. Dieser Fehler passiert nur, wenn die json-Ausgabe ist leer []
. Wenn json-Ausgabe ist nicht leer, es gibt keine Fehler. Was ist falsch an dem code?
employee_data
wird undefined
wenn die json-Ausgabe ist leer []
.
- Wie wird der Wert zugewiesen
employee_data
? - Es ist nicht definiert, wenn Fehler passiert
- Gut, Sie können nicht nehmen Sie
Object.keys()
undefined. Wie kam es zu erhalten, zu undefiniert? Wie istemployee_data
erstellt oder zugewiesen? Wenn ein web service zurückgegeben undefined JSON, bedeutet es vermutlich, dass es ein Fehler war von einer Art, mit der Aufforderung, so werden Sie natürlich brauchen, um zu erkennen, dass und alles tun, was die Fehlerbehandlung erforderlich ist. - Warum erhalte ich eine negative Stimme für diese Frage, wenn diese Frage gewann ein beliebtes Abzeichen für 1000 views? Was ist falsch an der Frage? Würde gerne wissen, zu vermeiden, zu Fragen, schlechte Fragen auf stackoverflow später.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem error-Objekt.Tasten genannt, die auf nicht-Objekt kann nur dann auftrat, wenn Sie nicht Objekt hinein. Siehe unten in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
Hast du test, was ist der Wert von employee_data, wenn es leer ist. Es sollten für die [ ].
Aber wenn Sie genannt haben, JSON.stringify auf,als es nicht funktioniert, Siehe unten.
Nun ich nehme an, Sie versuchen, Sie zu übergeben, die emptyJson zu widersprechen.keys () - Methode,die ist, warum Sie diesen Fehler empfangen.
Weitere Informationen hierzu finden Sie MDN docs.
if(typeof emptyData == 'object')
undif(typeof emptyJSOn == 'object')