Javascript属性说未定义

我从 Web 服务中检索了一些数据,并且能够将对象打印到控制台。

data.cashiers.forEach(c => {
    console.log('c is ' + c);
    console.log('c.name is ' + c.name);
    $('#sales_entry_cashier').append(new Option(c.name, c.uid));
});

奇怪的是,它c完全打印,但拒绝说它c.name具有价值,如下所示:

c is {"uid":"6a661e7d-61a7-477f-b69c-f328b06819a3","name":"Admin"}      sales.js:87
c.name is undefined                                                     sales.js:88

然后,当然,当它尝试附加名称和 uid 时它会爆炸。我怎样才能解决这个问题?显然,在输出的对象中,有 c.name,是“Admin”——为什么我不能访问该属性?

回答

你确定它是一个对象而不是序列化?

首先检查响应中的类型

console.log(typeof c)

如果它是一个字符串,则反序列化它

c = JSON.parse(c)

从那里去

编辑:确认它是一个字符串。

data.cashiers.forEach(c => {
    c = JSON.parse(c)
    $('#sales_entry_cashier').append(new Option(c.name, c.uid));
});


以上是Javascript属性说未定义的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>