Ich versuche, einen Webhook mit Quickbooks einzurichten und zum Testen verwende ich eine Probe des JSON, die sie auf den Webhook posten werden.Parsing Json von Webhook
Das Format des JSON ist wie folgt:
{
"eventNotifications":[
{
"realmId":"1185883450",
"dataChangeEvent":
{
"entities":[
{
"name":"Customer",
"id":"1",
"operation":"Create",
"lastUpdated":"2015-10-05T14:42:19-0700"
},
{
"name":"Vendor",
"id":"1",
"operation":"Create",
"lastUpdated":"2015-10-05T14:42:19-0700"
}]
}
}]
}
Mit Javascript, ich versuchte es ein paar Möglichkeiten zu analysieren, aber ich immer auf der Entitäten Teil stecken zu bleiben.
Versuch 1: Mit diesem Versuch bekomme ich einen Fehler, dass die Länge nicht definiert ist, was mich dazu brachte, den nächsten Versuch zu versuchen.
for (var i = 0; i < req.body.eventNotifications.length; i++) {
// Works fine
realmId.push(req.body.eventNotifications[i].realmId);
for (var j = 0; j < req.body.eventNotifications[i].dataChangeEvent.entities.length; j++) {
// length is undefined
}
}
Versuch 2: Ich habe nicht den Fehler wie oben, aber alles, was ich versuche, unter Entitäten zugreifen nicht definiert ist.
for (var i = 0; i < req.body.eventNotifications.length; i++) {
// Works fine
realmId.push(req.body.eventNotifications[i].realmId);
for (var j = 0; j < req.body.eventNotifications[i].dataChangeEvent.length; j++) {
// Anything I try to access is undefined
var test = req.body.eventNotifications[i].dataChangeEvent[j].entities.name;
}
}
Perfect! Können Sie bitte kurz erklären, warum/wie es funktioniert? –
Die erste Schleife iteriert über das Array 'eventNotifications'. Aus Gründen der Lesbarkeit habe ich jedes' eventNotifications'-Objekt gespeichert, das in der zweiten Schleife in einer Variablen 'eventNotification' verwendet werden soll. Die zweite Schleife iteriert über das Array 'entities', auf das Sie direkt zugreifen können, da 'dataChangeEvent' ein Objekt ist:' eventNotification.dataChangeEvent.entities'. Ich hoffe es hilft :) –