为什么我的javascript对象的值未定义?

dot*_*uad 1 javascript json object

当我尝试通过chrome控制台输出对象值时,我一直未定义.码:

ws.on('message', function(message) {
     var JSONobj = {"cmd":"updatesb","name":"TestName"};
     console.log('JSON Name Value: %s', message.name); //<--does not work
     console.log('JSON Name Value: %s', JSONobj.name); //<----WORKS!!!!
});
Run Code Online (Sandbox Code Playgroud)

ws.on中的消息参数通过websocket通信传递{"cmd":"updatesb","name":"TestName"}.第一个控制台输出未定义.第二个输出是TestName.为什么message.name在应该具有TestName值时未定义,如何从message.name获取值?

SLa*_*aks 5

听起来你的message参数是一个字符串,而不是一个对象.

您可以通过调用将该字符串解析为JSON JSON.parse().