我已经从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时,它会爆炸。我该如何解决这个问题?显然,在输出的Object中,有一个c.name,即"Admin"-为什么我不能进入物业?
您确定它是一个对象并且没有被序列化吗?
先检查你的回复类型
console.log(typeof c)
如果是字符串,则反序列化
c = JSON.parse(c)
从那里开始
编辑:Confirmed that it is a string.
data.cashiers.forEach(c => {
c = JSON.parse(c)
$('#sales_entry_cashier').append(new Option(c.name, c.uid));
});