2013-04-03 3 views
0

J'essaie d'utiliser l'adaptateur pour la notification push. J'ai suivi toutes les étapes définies dans ce site IBM Worklight Developer pour la notification push et faire un projet et son fonctionnement. Maintenant, je veux envoyer des notifications à un périphérique spécifique. Pour cette lampe de travail, donnez une méthode getDeviceSubscriptions() qui retourne un tableau JSON contenant le nombre d'objets pour chaque périphérique souscrit.Obtenir des données à partir de JSON

deviceSubscriptions = userSubscription.getDeviceSubscriptions() ; 

JSON comprennent:

[{ 
    "platform": "", 
    "eventSourceId": "", 
    "alias": "", 
    "token": "", 
    "userAgent": "", 
    "device": "", 
    "applicationId": "", 
    "options": {} 
}, 

{

"platform": "", 
    "eventSourceId": "", 
    "alias": "", 
    "token": "", 
    "userAgent": "", 
    "device": "", 
    "applicationId": "", 
    "options": {} 
}] 

Maintenant, je veux obtenir la valeur de la clé device et le jeton. Alors, comment peut-il être atteint.

À ce moment j'utilise JSON.stringify il renvoie une chaîne mais je veux avoir un accès direct au périphérique et au jeton. Quand j'ai utilisé JSON.parse il donne [object , Object] mais n'affiche aucun JSON.

+0

Ce code json n'est pas valide, est-il prévu? – Imperative

Répondre

2

Après l'analyse syntaxique JSON, l'utiliser pour indiquer la clé directement

obj[0]["device"] 

Pour tout le nœud disponible, vous devez utiliser la valeur incrémentale à la place de [0], comme

obj[i]["device"]; 
i++; 
+0

son erreur ne fonctionne pas: "Erreur Ecma: TypeError: Impossible de trouver la valeur par défaut pour l'objet – User42590

+0

valider votre json d'abord ... il y a beaucoup de validateur json en ligne disponible .. –

+0

oui je l'ai vérifié une chaîne JSON valide – User42590

0

Juste accéder aux propriétés en utilisant la syntaxe de tableau:

var firstDevice=deviceSubscriptions[0].device; 
var secondDevice=deviceSubscriptions[1].device; 

etc ...

+0

son fonctionnement ne donne pas d'erreur: "erreur Ecma: TypeError: Impossible de trouver la valeur par défaut pour l'objet – User42590

0

Mise à jour

Actuellement, votre JSON est pas valide, le JSON valide doit être:

{ 
    "items": [ 
     { 
      "platform": "Google", 
      "eventSourceId": "PushAdapter.PushEventSource", 
      "alias": "myPush", 
      "token": " ", 
      "userAgent": " ", 
      "device": " ", 
      "applicationId": " ", 
      "options": {} 
     }, 
     { 
      "platform": "Google", 
      "eventSourceId": "PushAdapter.PushEventSource", 
      "alias": "myPush", 
      "token": " ", 
      "userAgent": " ", 
      "device": " ", 
      "applicationId": " ", 
      "options": {} 
     } 
    ] 
} 

Parse votre chaîne JSON comme:

var data = JSON.parse(yourJsonString); 

maintenant accès à l'appareil et des propriétés du jeton valeur comme:

var device = data.items[0].device;  //give device value of 0th item 

var token = data.items[0].token;   //give token value of 0th item 

Check this fiddle

+0

son ne fonctionne pas donne l'erreur:" Erreur Ecma: TypeError: Impossible de trouver la valeur par défaut pour l'objet. – User42590

Questions connexes