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));
});