.avascript中的.text冲突

时间:2014-07-15 06:02:59

标签: javascript jquery json

我有一个通过JSON生成的对象:

{
    "notification": [
        {
            "mode": "MOBILE_PUSH",
            "notificationRead": 0,
            "actionTaken": 0,
            "requestJson": {
                "text": "Thisisanannouncement",
                "image": "image_url",
                "NOTIFICATION_ACTION_LINK": "action_link"
            },
            "externalReferenceId": "ref1",
            "notificationId": 0,
            "notificationDetailId": 1,
            "notificationStatus": null
        }
    ]
}

在这里,当我尝试访问notification.requestJson.text之类的文字时,我却未定义。如果我将文本更改为其他内容,则其工作正常。如何在不将文本更改为其他内容的情况下使其工作?

5 个答案:

答案 0 :(得分:4)

试试这个

data = {
    "notification": [
        {
            "mode": "MOBILE_PUSH",
            "notificationRead": 0,
            "actionTaken": 0,
            "requestJson": {
                "text": "Thisisanannouncement",
                "image": "image_url",
                "NOTIFICATION_ACTION_LINK": "action_link"
            },
            "externalReferenceId": "ref1",
            "notificationId": 0,
            "notificationDetailId": 1,
            "notificationStatus": null
        }
    ]
}
console.log(data.notification[0].requestJson.text);

DEMO

答案 1 :(得分:4)

您必须在其他变量中包含此对象,我猜它可能是obj

obj.notification[0].requestJson.text

在您的情况下,notification代表array,因此本质上array没有名为requestJson的属性,因此它显示错误。

答案 2 :(得分:0)

您的通知是一个数组而非对象,因此您应该使用:

notification[0].requestJson.text

答案 3 :(得分:0)

试试这个

console.log(notification[0].requestJson["text"]);

答案 4 :(得分:0)

这是数组结构  如果你写索引,这将工作正常

像这样

notification[0].requestJson.text