Ich durchlaufe ein verschachteltes JSON-Objekt, und ich stehe beim Zugriff auf die Unterelemente fest.Abrufen von Werten aus geschachtelten JSON mit AngularJS
Hier ist ein Beispiel der JSON-Datei, die ich verwende. Es besteht den JSONLint-Test, so dass davon ausgegangen werden kann, dass es in Ordnung ist.
JSON
[{
"fleetcheckitemid": "1",
"checkitemdesc": "Engine oil level",
"answers": [{
"fleetcheckid": "1",
"checkvaluedesc": "Ok"
}, {
"fleetcheckid": "2",
"checkvaluedesc": "Low"
}, {
"fleetcheckid": "3",
"checkvaluedesc": "Top-Up Required"
}]
}, {
"fleetcheckitemid": "2",
"checkitemdesc": "Water level",
"answers": [{
"fleetcheckid": "1",
"checkvaluedesc": "Ok"
}, {
"fleetcheckid": "2",
"checkvaluedesc": "Low"
}, {
"fleetcheckid": "3",
"checkvaluedesc": "Top-Up Required"
}]
}, {
"fleetcheckitemid": "3",
"checkitemdesc": "Brake fluid level",
"answers": [{
"fleetcheckid": "1",
"checkvaluedesc": "Ok"
}, {
"fleetcheckid": "2",
"checkvaluedesc": "Low"
}, {
"fleetcheckid": "3",
"checkvaluedesc": "Top-Up Required"
}]
}]
Ich kann die "fleetcheckitemid "zugreifen und diese" checkitemdesc" aber ich bin nicht in der Lage, um die "antwortet ": [{" fleetcheckitemid": „2 "," checkitemdesc ":" Ok "}, ...... Werte
In meinem Controller habe ich den folgenden Code, aber sobald ich die innere .each() - Schleife erhalte, erhalte ich einen Fehler:" Ty peError: Kann nicht lesen Eigenschaft 'Länge' undefinierter "
app.js
$http.get("http://mymadeupdomain/api/getfleetchecks.php?fleetid=" + $scope.newFleetIDValue).success(function(data)
{
$scope.data = data;
console.log("$scope.data: " + $scope.data); // WORKING - [object Object], ... [object Object]
$scope.answersArray = [];
console.log("$scope.answers: " + $scope.answers); // EMPTY ARRAY - NOT INITIALISED YET
// Unable to access sub-items (answers) here
$.each($scope.data, function(index, element)
{
var itemDescription = element.checkitemdesc;
console.log("itemDescription: " + itemDescription); // WORKING - Engine Oil Level
var fleetcheckitemid = element.fleetcheckitemid;
console.log("fleetcheckitemid: " + fleetcheckitemid); // WORKING - 1....34
$.each(this.answers, function(index, element)
{
var answers = element.answers;
var fleetcheckid = element.fleetcheckid;
console.log("element.fleetcheckid: " + element.fleetcheckid); // NOT WORKING
console.log("fleetcheckid: " + fleetcheckid); // NOT WORKING
});
});
});
wo ich mit diesem falsch gehen? Kann es die [] Klammern um die Antworten im JSON sein, die das verursachen?