获取js对象键的值

时间:2015-03-20 22:01:35

标签: javascript jquery

我需要能够获取对象键的值。当我console.log(event);返回一个对象时,我得到了:

MessageEvent {
    ports: Array[0], 
    data: "{
        "event":"playProgress",
        "data":{
            "seconds":0.419,
            "percent":0.002,
            "duration":177.813
        }
    }"
}

我似乎无法使用console.log(event.data.percent)获得data.percent的值。我做错了什么?

3 个答案:

答案 0 :(得分:3)

看起来event.data实际上是一个字符串,而不是嵌套对象。使用“相当现代”的浏览器,您可以:

var data = JSON.parse(event.data);
console.log(data.percent);

可以在之前的stackoverflow answer上看到有关JSON.parse的更多讨论。

答案 1 :(得分:0)

删除第一个数据对象周围的引号

MessageEvent {
    ports: Array[0], 
    data: {
        "event":"playProgress",
        "data":{
            "seconds":0.419,
            "percent":0.002,
            "duration":177.813
        }
    }
}

将它们留在你创建的字符串而不是obj

答案 2 :(得分:0)

您需要在 MessageEvent对象中进入另一个级别才能访问第一个数据对象的子对象数据。 为了console.log,您甚至不需要进行字符串化然后解析对象,就像在这种情况下一样。

尝试以下:

var MessageEvent = {
    ports: Array[0], 
    data: {
        "event":"playProgress",
        "data":{
            "seconds":0.419,
            "percent":2.002,
            "duration":177.813
        }
    }
};

的console.log(的 MessageEvent.data.data.percent );

JSFiddle http://jsfiddle.net/a_incarnati/em3afkov/