web-dev-qa-db-fra.com

Comment accéder au premier élément du tableau d'objets JSON?

J'observe que mandrill_events ne contient qu'un seul objet. Comment accéder à son event-property?

var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' }
12
Hedge

Pour répondre à votre question en titre, vous utilisez [0] pour accéder au premier élément, mais dans sa forme actuelle, mandrill_events contient une chaîne et non un tableau. Ainsi, mandrill_events[0] vous obtiendra simplement le premier caractère, '['.

Donc corrigez votre source pour:

var req = { mandrill_events: [{"event":"inbound","ts":1426249238}] };

et ensuite req.mandrill_events[0], ou si vous êtes coincé avec une chaîne, analysez le JSON que la chaîne contient:

var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' };
var mandrill_events = JSON.parse(req.mandrill_events);
var result = mandrill_events[0];
9
stovroz
var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' }

console.log(Object.keys(req)[0]);

Créez n'importe quel tableau d'objets (req), puis faites simplement Object.keys(req)[0] pour choisir la première clé du tableau d'objets.

14
Anuga

la propriété event semble être une chaîne, vous devez d'abord l'analyser en json:

 var req = { mandrill_events: '[{"event":"inbound","ts":1426249238}]' };
 var event = JSON.parse(req.mandrill_events);
 var ts =  event[0].ts
2
semirturgay

'[{"event":"inbound","ts":1426249238}]' est une chaîne, vous ne pouvez accéder à aucune propriété à cet endroit. Vous devrez l'analyser dans un objet, avec JSON.parse(), puis le gérer comme un objet normal

1

Après l'avoir analysé avec Javascript, essayez ceci:

mandrill_events[0].event
0
Qutayba