0

我正在尝试使用适配器进行推送通知。我遵循此 IBM Worklight Developer 站点中为推送通知定义的所有步骤,并制作了一个项目及其工作。现在我想进一步向特定设备发送通知。对于此工作灯,请提供一个方法 getDeviceSubscriptions(),该方法返回 JSON 数组,其中包含每个订阅设备的对象数。

deviceSubscriptions = userSubscription.getDeviceSubscriptions() ;

JSON包括:

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

{

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

现在我想获得密钥device和令牌的价值。那么如何才能实现呢。

当时我正在使用JSON.stringify它返回一个字符串,但我想直接访问设备和令牌。当我使用JSON.parse它时,它会给出[object , Object]但不显示任何 JSON。

4

3 回答 3

2

JSON解析后,直接用this指出key

obj[0]["device"]

对于所有可用节点,您应该使用增量值代替 [0],例如

obj[i]["device"];
i++;
于 2013-04-03T06:20:12.297 回答
0

只需使用数组语法访问属性:

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

ETC...

于 2013-04-03T06:23:14.383 回答
0

更新

目前您的 JSON 无效,有效的 json 应该是:

{
    "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": {}
        }
    ]
}

解析您的 json 字符串,如:

var data = JSON.parse(yourJsonString);

现在访问设备和令牌属性值,例如:

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

检查这个小提琴

于 2013-04-03T06:28:24.477 回答