У меня есть вызов API, который возвращает данные в следующем формате:
[
{
"children": null,
"entityDefinition": {
"id": 0,
"version": 0,
"entityType": "APPLICATION_COMPONENT_NODE",
"entityId": 8280,
"prettyToString": null
},
"state": "NORMAL",
"nodesPerformanceStateSummary": null,
"appServerAgentAvailability": {
"entityId": 8280,
"entityType": "APPLICATION_COMPONENT_NODE",
"latest": true,
"percentage": 100,
"metricId": 41540
},
"machineAgentAvailability": {
"entityId": 8280,
"entityType": "APPLICATION_COMPONENT_NODE",
"latest": true,
"percentage": 100,
"metricId": 41548
}
}
],
[
{
"children": null,
"entityDefinition": {
"id": 0,
"version": 0,
"entityType": "APPLICATION_COMPONENT_NODE",
"entityId": 20552,
"prettyToString": null
},
"state": "NORMAL",
"nodesPerformanceStateSummary": null,
"appServerAgentAvailability": {
"entityId": 20552,
"entityType": "APPLICATION_COMPONENT_NODE",
"latest": false,
"percentage": 0,
"metricId": 41540
},
"machineAgentAvailability": {
"entityId": 20552,
"entityType": "APPLICATION_COMPONENT_NODE",
"latest": true,
"percentage": 100,
"metricId": 41548
}
}
]
Когда я пытаюсь выполнить
JSON.parse(myData).forEach(function(node){
sails.log.info(node.id);
}
, выдается следующая ошибка:
SyntaxError: Unexpected token , in JSON at position 468
at JSON.parse (<anonymous>)
at getListOfAvailableNodes (C:\Users\taaniel.paal\Documents\license-statistics\api\helpers\get-licenses.js:73:14)
at Request._callback (C:\Users\taaniel.paal\Documents\license-statistics\api\helpers\get-licenses.js:136:30)
at Request.self.callback (C:\Users\taaniel.paal\Documents\license-statistics\node_modules\request\request.js:185:22)
at Request.emit (events.js:182:13)
at Request.EventEmitter.emit (domain.js:442:20)
at Request.<anonymous> (C:\Users\taaniel.paal\Documents\license-statistics\node_modules\request\request.js:1161:10)
at Request.emit (events.js:182:13)
at Request.EventEmitter.emit (domain.js:442:20)
at IncomingMessage.<anonymous> (C:\Users\taaniel.paal\Documents\license-statistics\node_modules\request\request.js:1083:12)
at Object.onceWrapper (events.js:273:13)
at IncomingMessage.emit (events.js:187:15)
at IncomingMessage.EventEmitter.emit (domain.js:442:20)
at endReadableNT (_stream_readable.js:1090:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Это работает, когда массив имеет только один элемент, но когда их больше, происходит сбой.Кто-то, возможно, знает обходной путь для этого?Я имею в виду, JSON.parse () должен распознавать данные типа массива, или проблема в том, что нет корневого элемента, который содержит этот массив, например, {"node": ["x", "x", "x"]}?Я немного сбит с толку и хотел бы получить представление от более умного человека:)
Заранее спасибо.